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     }

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 }

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     }

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 }

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 }

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     }

时间: 2024-12-18 07:25:49

GUI编程(二)----- 容器组件的相关文章

java基础学习总结——GUI编程(二)

永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! java基础学习总结——GUI编程(二) 一.事件监听 测试代码一: 1 package cn.javastudy.summary; 2 3 import java.awt.*; 4 import java.awt.event.*; 5 6 public class TestActionEvent { 7 public static void main(String args[]) { 8 Frame f = new Frame("

java基础学习总结——GUI编程(二) 未学习

一.事件监听 测试代码一: 1 package cn.javastudy.summary; 2 3 import java.awt.*; 4 import java.awt.event.*; 5 6 public class TestActionEvent { 7 public static void main(String args[]) { 8 Frame f = new Frame("TestActionEvent"); 9 Button btn = new Button(&qu

GUI 编程【二】 (GridLayout,BorderLayout,将面板作为容器使用)

GUI 编程[二]    --GridLayout , BorderLayout,将面板作为容器使用: GridLayout: package java19; import java.awt.Container; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; public class ShowGridLayout extends JFrame { public ShowGrid

GUI编程(三)-----非容器组件

常用的非容器组件有:JLabel.JTextField.JPasswordField.JRadioButton.JCheckBox.JComboBox.JTextArea. 基本用法: public static void main(String[] args) { JFrame frame= new JFrame("注册"); frame.setSize(500, 400); frame.setLocationRelativeTo(null); //创建一个面板 JPanel pan

Java之GUI编程(二)——布局管理器

在上篇博客Java之GUI编程(一)中我已经对GUI编程的组件和事件做了简单介绍了,现在来看看另外一部分关于组件在各个平台是如何做到仍能保持自己合理的位置大小以及外观的. 已经说了Java是跨平台运行的,但是不同的平台对于点及坐标的定义不完全相同.而且屏幕的解析度分辨率不同也会造成位置的变化,为了确保每个组件的相对位置和大小以及外观,java就设计了布局管理器. 布局管理器是对容器中的元素进行管理,按照一定的规则排放容器里面的元素.它控制了组件的摆放. 布局管理器分类: FlowLayout:浮

JavaSE学习57:GUI编程之事件模型(二)

一实现两个数求和并且输出结果 利用所学的GUI编程实现上述的要求. TFMath.java源代码: <span style="font-size:18px;">import java.awt.*; import java.awt.event.*; public class TFMath { public static void main(String[] args) { new TFFrame().launchFrame(); } } class TFFrame exten

第14篇-JAVA GUI编程

第14篇-JAVA GUI编程 每篇一句 :道路一开始开辟的时候总是存在障碍的 初学心得: 原本下定决心才能开始的事情也变得理所当然 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-25| JAVA GUI编程 ] 1.什么是界面 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面 与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受 2.Java 基础类 JFC 的基本

初次踏上GUI编程之路(有点意思,详细介绍了菜鸟的学习之路)

初次踏上GUI编程之路 —— 我的Qt学习方法及对Qt认识的不断转变 -> 开始接触GUI与开始接触Qt: 话说,我第一次看见“Qt”这一个名词,好像是在CSDN网站的主页上吧,因为CSDN好像在给Qt做宣传,在主页上占了一栏的广告,只是,这时,我还没怎么刻意去留意这个陌生的字眼.在我大二上学期中下期时,即大概是2011年的12月,由于自己刚刚完成了汇编语言的入门学习,正要制订下一个学习目标,所以,又开始找起了资料,同时,也再次开始为自己的就业问题担心,于是,开始搜集一些招聘单位的信息,这时候,

Java基础——GUI编程(四)

继前面的,这篇主要记录菜单和文件对话框的两个小练习,来熟悉一下方法的应用,一些简单的逻辑和Swing的相关简介,以及关于GUI基础的记录. 一.创建一个菜单 import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.event.ActionEvent; import java.

java基础学习总结——GUI编程(一)

永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! java基础学习总结——GUI编程(一) 一.AWT介绍 所有的可以显示出来的图形元素都称为Component,Component代表了所有的可见的图形元素,Component里面有一种比较特殊的图形元素叫Container,Container(容器)在图形界面里面是一种可以容纳其它Component元素的一种容器,Container本身也是一种Component的,Container里面也可以容纳别的Container. Cont