java GUI之基本图形

1.为了支持图形用户界面程序设计,java1.0的标准类库中包含一个抽象窗口工具箱(Abstract Window Toolkit,AWT).

这个工具箱极不成熟,其编程模型也不是面向对象的,有很大的局限性.为此,java1.2最终决定放弃AWT中的GUI,而是添加了一个Swing库.

Swing组件不仅可以完全替代AWT组件,而且提供了更多的复杂组件.

必须注意GUI程序设计是,不能混用AWT组件和Swing组件(例如不能将javax.swing.JList添加到java.awt.Frame中).所用Swing组件的类名以字母J开头,以区别AWT组件.

注意:Swing是基于AWT架构之上的,它没有完全替代AWT.

创建框架:

 1 import java.awt.Container;
 2 
 3 import javax.swing.JButton;
 4 import javax.swing.JFrame;
 5 
 6 public class FrameDmo {
 7     public static void main(String[] args) {
 8         JFrame frame = new JFrame("测试JFrame");        
 9         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//框架关闭时结束运行
10         frame.setSize(500, 300);//设置框架大小
11         frame.setVisible(true);//显示框架
12     }
13 }

setDefaultCloseOperation()告诉程序关闭当前框架时应该做什么.JFrame.Exit_ON_CLOSE就是告诉程序关闭程序是结束运行.否则关闭框架后,程序没有结束运行.

创建框架后,就可以添加组件了

 1 import java.awt.Container;
 2 
 3 import javax.swing.JButton;
 4 import javax.swing.JFrame;
 5 
 6 public class FrameDmo {
 7     public static void main(String[] args) {
 8         JFrame frame = new JFrame("测试JFrame");
 9         JButton button=new JButton("按钮");
10         //取得框架的内容窗格
11         Container container=frame.getContentPane();
12         //将框架添加到框架的内容窗格中
13         container.add(button);
14         //框架关闭时结束运行
15         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
16         //设置框架大小
17         frame.setSize(500, 300);
18         //显示框架
19         frame.setVisible(true);
20     }
21 }

java SE5之前,如果要将某个组件添加到框架中,必须首先调用类JFrame中的getContentPane取得框架的内容窗格,

然后通过该内容窗格调用方法add将组件添加到内容窗格中.例如上面的例子.

内容窗格委托.

 1 import javax.swing.JButton;
 2 import javax.swing.JFrame;
 3 
 4 public class FrameWithButton1 extends JFrame {
 5     public FrameWithButton1(){
 6         JButton button=new JButton("按钮");
 7         add(button);//javaSE5之后采用
 8     }
 9     public static void main(String[] args) {
10         FrameWithButton1 frame=new FrameWithButton1();
11         frame.setTitle("将一个按钮添加到框架中");
12         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
13         frame.setSize(500,300);
14         frame.setVisible(true);
15     }
16 }

需要将组件添加到其内容窗格的容器有JFrame,JDialog,JApplet,JInternalFrame,jWindow.

原文地址:https://www.cnblogs.com/guoyansi19900907/p/4529021.html