當前位置:編程學習大全網 - 編程語言 - java swing界面設計

java swing界面設計

GUI圖形界面設計的重點是布局?

SWING也是采用AWT的布局方式,進行布局管理的。(實現LayoutManager接口的方法,來進行管理布局,API中已有實現類,我們通常只需要指定實現類,而不需要自己重寫方法)

常用的布局有絕對布局, 邊界布局BorderLayout,流布局FlowLayout,表格布局GridLayout。

JFrame等重量級組件,默認布局是邊界布局,JPanel輕量級組件,默認布局是流布局

絕對布局:布局的特點,需要指定每個組件的大小,和具體位置。

優點:充分的自定義,充分的自由,可以寫出漂亮的 ,細致的界面

缺點:絕對布局在不同的操作系統下,會有壹些不同程度的變化,導致界面變形,甚至組件重疊等。在同壹操作系統下,窗口放大縮小,界面也會變形

絕對布局的範例

import?javax.swing.JButton;

import?javax.swing.JFrame;

public?class?Frame1?extends?JFrame{

JButton?jb1;

public?Frame1()?{

setLayout(null);//指定窗口的布局管理器為空,也就是絕對布局

jb1?=?new?JButton("按鈕");

jb1.setLocation(100,?50);//指定組件的位置

jb1.setSize(80,?30);//指定組件的大小

//jb1.setBounds(100,?50,?80,?30);//上面兩句代碼等同於這句代碼

add(jb1);

setSize(300,?200);

setLocationRelativeTo(null);

setDefaultCloseOperation(EXIT_ON_CLOSE);

}

public?static?void?main(String[]?args)?{

new?Frame1().setVisible(true);

}

}

邊界布局BorderLayout:它可以對容器組件進行安排,並調整其大小,使其符合下列五個區域:北、南、東、西、中。每個區域最多只能包含壹個組件

優點:比較常用的布局,簡單易掌握,放大縮小,不影響組件的位置

缺點:組件位置不夠靈活。每個區域如果添加多個組件,那麽後面的組件會覆蓋前面的組件。(因為可以嵌套其他組件使用,所以這些缺點基本都能克服)

3. ? 代碼參考

import?javax.swing.*;

import?java.awt.*;

public?class?P004_BorderLayout?{

JFrame?jframe;

JButton?jb1,jb2,jb3,jb4,jb5;

public?P004_BorderLayout(){

jframe?=?new?JFrame();

jframe.setTitle("邊界布局");

jframe.setBounds(300,?200,?180,?180);

jb1?=?new?JButton("東");

jframe.add(jb1,?BorderLayout.EAST);

jb2?=?new?JButton("西");

jframe.add(jb2,BorderLayout.WEST);

jb3?=?new?JButton("南");

jframe.add(jb3,BorderLayout.SOUTH);

jb4?=?new?JButton("北");

jframe.add(jb4,BorderLayout.NORTH);

jb5?=?new?JButton("中");

jframe.add(jb5);//BorderLayout.CENTER可以省略

jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jframe.setVisible(true);

}

public?static?void?main(String[]?args)?{

new?P004_BorderLayout();

}

}

流布局FlowLayout:像壹排文字壹個挨著壹個的布局。流布局用於安排有向流中的組件,這非常類似於段落中的文本行。流的方向可以指定。

優點:可以快速添加組件,不用指定位置,也不用指定邊界

缺點:線性排列 ,外觀單調。(嵌套其他布局,可以忽略缺點)

代碼參考

import?java.awt.FlowLayout;

import?javax.swing.*;

public?class?P003_FlowLayout?{

JFrame?jframe;

public?P003_FlowLayout(){

jframe?=?new?JFrame("流式布局");

for?(int?i?=?1;?i?<=?5;?i++)?{

jframe.add(new?JButton(i+""));

}

jframe.setLocation(380,?260);

jframe.setLayout(new?FlowLayout(FlowLayout.LEFT));//窗口指定位流式布局,方向從左往右

jframe.pack();

jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jframe.setVisible(true);

}

public?static?void?main(String[]?args)?{

new?P003_FlowLayout();

}

}

表格布局GridLayout:它以矩形網格形式對容器的組件進行布置。容器被分成大小相等的矩形,壹個矩形中放置壹個組件。

優點:組件整齊排列,

缺點:如果添加的組件數量,和指定的數量不壹致,容易導致缺失等

參考代碼

import?javax.swing.*;

import?java.awt.*;

public?class?P005_GridLayout?{

JFrame?jframe;

public?P005_GridLayout()?{

jframe?=?new?JFrame("表格布局");

jframe.setLayout(new?GridLayout(3,?4));//表格布局,3行?4列

for?(int?i?=?0;?i?<=?12;?i++)?{

jframe.add(new?JButton(i+""));

}

jframe.setLocation(300,?200);

jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jframe.pack();

jframe.setVisible(true);

}

public?static?void?main(String[]?args)?{

new?P005_GridLayout();

}

}

最後: 布局是壹種靈活的東西。妳可以壹個布局裏嵌套另外壹個布局。

比如邊界布局的窗口的中間,加入按表格布局的組件,表格布局裏面是流式布局。

很多的復雜的界面,通過細分,都能拆分成常用布局的嵌套

  • 上一篇:歷史最悠久報國寺
  • 下一篇:聲控開關功能是什麽,聲控開關的品牌有哪些
  • copyright 2024編程學習大全網