GUI(Graphical
User Interface),图形用户界面。
AWT(Abstract Window Toolkit),抽象窗口工具集,第一代的java GUI组件,是重量
级的
Swing,不依赖于底层细节,轻量级的组件。
Window有两种形式,一种是Frame ,一种是Dialog
Frame是一个顶级窗口,缺省为BorderLayout布局管理器
Panel无法单独显示,必须添加到某个容器中,缺省为FlowLayout布局管理器。
Frame的使用
public class FrameTest { public static void main(String[] args) { Frame frame = new Frame();
frame.setSize(500,500); frame.setBackground(Color.GRAY); frame.setTitle("AWT first App");
frame.setVisible(true); } }
|
带容器窗口的实现
import java.awt.Color; import java.awt.Frame; import java.awt.Panel;
public class FrameWithPanel extends Frame { public FrameWithPanel(String title) { super(title); }
public static void main(String[] args) { FrameWithPanel frame = new FrameWithPanel("Frame with panel"); Panel panel = new Panel();
frame.setSize(200, 200); frame.setBackground(Color.BLACK); frame.setLayout(null);
panel.setSize(100 , 100); panel.setBackground(Color.YELLOW);
frame.add(panel); frame.setVisible(true); } } |
带按钮的窗口
public class ExGui extends Frame { private Frame frame; private Button btn1; private Button btn2;
public void go() { frame = new Frame("gui example");
frame.setLayout(new FlowLayout());
btn1 = new Button("Press me"); btn2 = new Button("Don't Press me");
frame.add(btn1); frame.add(btn2);
frame.pack(); frame.setVisible(true);
}
public static void main(String[] args) { ExGui ex = new ExGui(); ex.go(); } }
|
布局管理器
BorederLayout
FlowLayout
GridLayout
CardLayout
GridBagLayout
FlowLayout的使用,流式布置,按钮的位置会随窗口的大小改变
public class MyFlow { private Frame frame;
private Button btn1,btn2,btn3;
public void go() { frame = new Frame("Flow Layout");
frame.setLayout(new FlowLayout());
btn1 = new Button("btn1"); btn2 = new Button("btn2"); btn3 = new Button("btn3");
frame.add(btn1); frame.add(btn2);
|