GUI编程(二)----- 容器组件

JFrame 框架窗体

JFrame窗体是一个容器,它是Swing程序中各个组件的载体,可以讲JFrame看作是承载这些Swing组件的容器。JFrame窗体具有最大化、最小化和关闭按钮。

常用方法

1、构造方法

JFrame() 构造一个初始时不可见的新窗体。

JFrame(String title) 创建一个新的、初始不可见的、具有指定标题的 Frame

注意:构造方法创建出来的窗体式默认隐藏的。

2、普通方法

Container getContentPane() 返回此窗体的 contentPane 对象。Component类的。

public void setVisible(boolean b) 设置窗体的隐藏和显示。window类的。

public void setSize(int width, int height) 调整组件的大小,使其宽度为 width,高度为 height

void setBounds(int x, int y, int width, int height) 移动组件并调整其大小。

void setIconImage(Image image)  设置要作为此窗口图标显示的图像。

Component add(Component comp) 将指定组件追加到此容器的尾部。

void setDefaultCloseOperation(int operation) 设置用户在此窗体上发起 "close" 时默认执行的操作。

operation的值:

DO_NOTHING_ON_CLOSE(在 WindowConstants 中定义):不执行任何操作;要求程序在已注册的 WindowListener 对象的 windowClosing 方法中处理该操作。
HIDE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册的 WindowListener 对象后自动隐藏该窗体。
DISPOSE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册 WindowListener 的对象后自动隐藏并释放该窗体。
EXIT_ON_CLOSE(在 JFrame 中定义):使用 System exit 方法退出应用程序。仅在应用程序中使用。
默认情况下,该值被设置为 HIDE_ON_CLOSE。更改此属性的值将导致激发属性更改事件,其属性名称为 "defaultCloseOperation"。

代码示例:

 1 public static void main(String[] args) {
 2         JFrame frame = new JFrame("测试窗体"); //创建带有标题的窗体
 3         frame.setSize(300, 300); //设置大小
 4         frame.setLocationRelativeTo(null); //居中显示
 5         frame.setIconImage(Toolkit.getDefaultToolkit().createImage("E:\Workspace\Demo\src\IMG_1880.PNG"));
 6         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //点击x好的时候退出虚拟机
 7         JButton button = new JButton("我是一个button");
 8         frame.add(button); //添加组件
 9 //        Container container = frame.getContentPane();
10 //        container.add(button);
11         frame.setVisible(true); //设置显示
12     }
View Code

JDialog对话框

代码示例如下:

 1 public static void main(String[] args) {
 2         JFrame frame = new JFrame("测试窗体"); //创建带有标题的窗体
 3         frame.setSize(300, 300); //设置大小
 4         frame.setLocationRelativeTo(null); //居中显示
 5         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 6         
 7         JDialog dialog = new JDialog(frame,"对话框");
 8         dialog.setBounds(300, 300, 100, 100);
 9         dialog.setLocationRelativeTo(frame);
10         dialog.setVisible(true);
11         dialog.add(new JLabel("我是一个对话框"));
12         frame.setVisible(true);
13 }
View Code

JDialog使用起来不方便,不能明确的起到作用。所以用JOptionPane来代替。

JOptionPane使用方法代码如下:

 1 public class DemoDialog {
 2     public static void main(String[] args) {
 3         JFrame frame = new JFrame("测试窗体"); //创建带有标题的窗体
 4         frame.setSize(300, 300); //设置大小
 5         frame.setLocationRelativeTo(null); //居中显示
 6         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 7         
 8         
 9         //消息对话框
10         JOptionPane.showMessageDialog(frame, "通知内容", "通知",JOptionPane.INFORMATION_MESSAGE);
11         //警告对话框
12         JOptionPane.showMessageDialog(frame,"警告内容","警告",JOptionPane.WARNING_MESSAGE);
13         //错误对话框
14         JOptionPane.showMessageDialog(frame,"错误内容","错误",JOptionPane.ERROR_MESSAGE);
15                 
16         //输入框
17         String moeny = JOptionPane.showInputDialog("请输入你要给我的金额($)");
18         System.out.println("money:"+ moeny);
19                 
20         //确认框
21         int num = JOptionPane.showConfirmDialog(frame, "你确认要卸载吗?");
22         System.out.println(num);
23     }
View Code

FileDialog文件对话框

代码示例:

 1 public class Demo3 {
 2 
 3     public static void main(String[] args) {
 4         JFrame frame = new JFrame("窗体");
 5         //创建一个文件对话框(初始也是不可见)
 6         //FileDialog fileDialog = new FileDialog(frame, "请选择打开的文件", FileDialog.LOAD);
 7         FileDialog fileDialog = new FileDialog(frame,"请选择保存的路径",FileDialog.SAVE);
 8         FrameUtil.initFrame(frame, 300,400);
 9         fileDialog.setVisible(true);
10         System.out.println("文件所在的目录:"+ fileDialog.getDirectory());
11         System.out.println("文件名:"+ fileDialog.getFile());
12     }
13 }
View Code

JPanel 面板

代码示例:

 1 public class Demo4 {
 2     
 3     public static void main(String[] args) {
 4         JFrame frame = new JFrame("窗体");
 5         //创建一个面板
 6         JPanel panel = new JPanel();
 7         //设置面板的背景颜色
 8         panel.setBackground(Color.RED);
 9         //把面板添加到窗体
10         frame.add(panel);
11         FrameUtil.initFrame(frame, 400, 300);
12     }
13 }
View Code

JScorollPane面板

JScorllPane面板是带滚动条的面板,它也是一种容器。但是JScorllPane只能放置一个组件,并且不可以使用布局管理器。如果需要在JScorllPane面板中放置多个组件,需要将多个组件放置在Jpanel面板上,然后将Jpanel面板作为一个整体组件添加在JScorllPane面板上。

代码示例如下:

 1 public static void main(String[] args) {
 2         JFrame frame = new JFrame("测试窗体"); //创建带有标题的窗体
 3         frame.setSize(300, 100); //设置大小
 4         frame.setLocationRelativeTo(null); //居中显示
 5         frame.setIconImage(Toolkit.getDefaultToolkit().createImage("E:\Workspace\Demo\src\IMG_1880.PNG"));
 6         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //点击x好的时候退出虚拟机
 7         JLabel label = new JLabel("这是一个滚动Label这是一个滚动Label这是一个滚动Label这是一个滚动Label这是一个滚动Label这是一个滚动Label这是一个滚动Label这是一个滚动Label这是一个滚动Label这是一个滚动Label这是一个滚动Label这是一个滚动Label这是一个滚动Label这是一个滚动Label这是一个滚动Label这是一个滚动Label这是一个滚动Label这是一个滚动Label");
 8         JScrollPane scrollPane = new JScrollPane(label);
 9         frame.add(scrollPane);
10         frame.setVisible(true); //设置显示
11     }
View Code

原文地址:https://www.cnblogs.com/nicker/p/6266839.html