JAVA图形界面(GUI)之容器

在Swing中,容器可以用来组织界面布局,容器中可以添加容器和组件。常用的有如下几种:
顶层容器:JFrame,JApplet,JDialog,JWindow
中间容器:JPanel,JScrollPane,JSplitPane,JToolBar
特殊容器:在GUI上起特殊作用的中间层,如JInternalFrame,JLayeredPane,JRootPane.
这篇博客将抽取其中几个常用容器为大家介绍,剩余的在之后用到了再介绍。

JFrame

JFrame是是个顶层容器,是屏幕上window的对象,能够最大化、最小化、关闭。
在上一篇博客《JAVA图形界面(GUI)》中的Swing示例中已经用到了。

上图就是JFrame的运行效果,中间显示”Hello Swing”的是Jpanel面板,在下面会介绍。

构造方法

方法名 说明
JFrame() 构造一个初始时不可见的新窗体
JFrame(GraphicsConfiguration gc) 以屏幕设备的指定 GraphicsConfiguration 和空白标题创建一个Frame
JFrame(String title) 创建一个新的、初始不可见的、具有指定标题的 Frame
JFrame(String title, GraphicsConfiguration gc) 创建一个具有指定标题和指定屏幕设备的GraphicsConfiguration的JFrame

使用示例

import javax.swing.JFrame;

public class SwingDemo extends JFrame
{
   public static void main(String[] args)
   {
      // 实例化JFrame对象并设置窗体标题
      JFrame frame = new JFrame("Swing Demo");
      // 设置窗体大小
      frame.setSize(300, 150);
      // 设置默认关闭操作为:关闭时退出
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      // 设置窗体在屏幕上的位置
      frame.setLocation(100, 100);
      // 设置窗体是否显示
      frame.setVisible(true);
   }
}

JDialog

对话框也是一个窗体,在对话框上没有最大化和最小化按钮。

方法名 说明
JDialog() 创建一个没有标题并且没有指定 Frame 所有者的无模式对话框
JDialog(Dialog owner) 创建一个没有标题但将指定的 Dialog 作为其所有者的无模式对话框
JDialog(Dialog owner, boolean modal) 创建一个具有指定所有者 Dialog 和模式的对话框
JDialog(Dialog owner, String title) 创建一个具有指定标题和指定所有者对话框的无模式对话框
JDialog(Dialog owner, String title, boolean modal) 创建一个具有指定标题、模式和指定所有者 Dialog 的对话框
JDialog(Dialog owner, String title, boolean modal, GraphicsConfiguration gc) 创建一个具有指定标题、所有者Dialog、模式和 GraphicsConfiguration 的对话框。
JDialog(Frame owner) 创建一个没有标题但将指定的 Frame 作为其所有者的无模式对话框
JDialog(Frame owner, boolean modal) 创建一个具有指定所有者 Frame、模式和空标题的对话框。
JDialog(Frame owner, String title) 创建一个具有指定标题和指定所有者窗体的无模式对话框
JDialog(Frame owner, String title, boolean modal) 创建一个具有指定标题、所有者 Frame 和模式的对话框
JDialog(Frame owner, String title, boolean modal, GraphicsConfiguration gc) 创建一个具有指定标题、所有者 Frame、模式和 GraphicsConfiguration 的对话框
JDialog(Window owner) 创建一个具有指定所有者 Window 和空标题的无模式对话框
JDialog(Window owner, Dialog.ModalityType modalityType) 创建一个具有指定所有者 Window、模式和空标题的对话框
JDialog(Window owner, String title) 创建一个具有指定标题和所有者 Window 的无模式对话框
JDialog(Window owner, String title, Dialog.ModalityType modalityType) 创建一个具有指定标题、所有者 Window 和模式的对话框
JDialog(Window owner, String title, Dialog.ModalityType modalityType, GraphicsConfiguration gc) 创建一个具有指定标题、所有者 Window、模式和 GraphicsConfiguration 的对话框
import java.awt.Frame;

import javax.swing.JDialog;
import javax.swing.JFrame;

public class SwingDemo
{
   public static void main(String[] args)
   {
      JDialog dialog = new JDialog((Frame) null, "Dialog");
      // 设置窗体大小
      dialog.setSize(300, 150);
      // 设置默认关闭操作为:关闭时退出
      dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
      // 设置窗体在屏幕上的位置
      dialog.setLocation(100, 100);
      // 设置窗体是否显示
      dialog.setVisible(true);
   }
}

运行效果:

JWindow

JWindow是一个没有边框的窗体。

方法名 说明
JWindow() 创建未指定所有者的窗口
JWindow(Frame owner) 使用指定的所有者框架创建窗口
JWindow(GraphicsConfiguration gc) 使用屏幕设备的指定 GraphicsConfiguration 创建窗口
JWindow(Window owner) 使用指定的所有者窗口创建窗口
JWindow(Window owner, GraphicsConfiguration gc) 使用屏幕设备的指定所有者窗口和 GraphicsConfiguration 创建窗口
import javax.swing.JFrame;
import javax.swing.JWindow;

public class SwingDemo
{
   public static void main(String[] args)
   {
      JWindow window = new JWindow();
      // 设置窗体大小
      window.setSize(300, 150);
      // 设置窗体在屏幕上的位置
      window.setLocation(100, 100);
      // 设置窗体是否显示
      window.setVisible(true);
   }
}

JPanel

JPanel属于中间容器,不可独立存在,需要依附于其他容器,在GUI开发中,JPanel经常使用,利用JPanel,我们可以轻易的对组件进行布局。

构造方法

方法名 说明
JPanel() 创建具有双缓冲和流布局的新 JPanel
JPanel(boolean isDoubleBuffered) 创建具有 FlowLayout 和指定缓冲策略的新 JPanel
JPanel(LayoutManager layout) 创建具有指定布局管理器的新缓冲 JPanel
JPanel(LayoutManager layout, boolean isDoubleBuffered) 创建具有指定布局管理器和缓冲策略的新JPanel
时间: 2024-11-03 13:28:33

JAVA图形界面(GUI)之容器的相关文章

怎样让Java图形界面程序启动时没有控制台窗口?

程序|控制|图形 缺水的海豚 写了一篇文章介绍 如何在C/C++中调用Java的方法 . 写得相当好,谢谢! 文章中提到, Java跨平台的特性使Java越来越受开发人员的欢迎,但也往往会听到不少的抱怨:用Java开发的图形用户窗口界面每次在启动的时候都会跳出一个控制台窗口,这个控制台窗口让本来非常棒的界面失色不少.怎么能够让通过Java开发的GUI程序不弹出Java的控制台窗口呢? 有一个秘密(JDK文档中没提到),可以简单地解决这个问题.如果想运行Java图形界面程序,也用不着费劲写一个这样

java图形界面之布局设计_java

在界面设计中,一个容器要放置许多组件,为了美观,为组件安排在容器中的位置,这就是布局设计.java.awt中定义了多种布局类,每种布局类对应一种布局的策略.常用的有以下布局类: •FlowLayout,依次放置组件. •BoarderLayout,将组件放置在边界上. •CardLayout,将组件像扑克牌一样叠放,而每次只能显示其中一个组件. •GridLayout,将显示区域按行.列划分成一个个相等的格子,组件依次放入这些格子中. •GridBagLayout,将显示区域划分成许多矩形小单元

请问java图形界面编程中怎样改变消息提示框中确定按钮的文本内容啊?

问题描述 请问java图形界面编程中怎样改变消息提示框中确定按钮的文本内容啊? 问题补充:恩恩,swing的!请问怎么改啊?xiaolv 写道 解决方案 JOptionPane.setDefaultLocale(Locale.CHINA);JOptionPane.showMessageDialog(null, "11", "22",JOptionPane.INFORMATION_MESSAGE);这个按钮自动集成多语言.只能通来Locale来改.想要OK就用Loca

代码-Java图形界面 简易BMI计算器怎样设计算法

问题描述 Java图形界面 简易BMI计算器怎样设计算法 老师出差去了 布置作业做一个简易BMI计算器 写了半天才写出一个图形界面 不知道怎样实现键盘录入身高.体重,点击评估按钮得到BMI和结果(结果输出的是胖,瘦,正常三种情况) 代码.界面如下: 解决方案 你的核心问题是如何对按钮进行响应,需要看下ActionListener的相关方法. public class BMI extends JFrame{ private JLabel lblHeight; private JLabel lblW

Java图形界面开发之简易记事本_java

在学习了Java事件之后,自己写了一个极其简单的记事本.用到了MenuBar,Menu,MenuITem等控件,事件包括ActionListener以及KeyListener. 代码如下: package com.package3; /* * 功能:简易记事本的开发,可以保存文件,打开文件,退出记事本 * author:ywq */ import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*

swing-小弟想问一下,当前用来开发JAVA图形界面的主流是什么??

问题描述 小弟想问一下,当前用来开发JAVA图形界面的主流是什么?? AWT,SWT,SWING这三种哪个用户比较多?求各位前辈解答, 解决方案 swing用的比较多 解决方案二: swing 用的人多,但是比较麻烦 解决方案三: swing 用的人多,但是比较麻烦 解决方案四: swing 用的人多,但是比较麻烦 解决方案五: java web的整个流程是可以的. 解决方案六: java web的整个流程是可以的. 解决方案七: 现在都是搞java web开发了 没人用swing了 解决方案八

awt-关于java图形界面的问题

问题描述 关于java图形界面的问题 问题大概是这样的: 1.awt 2.在一个窗口中建了一个按钮,给这个按钮设置了监听器,点击它后会弹出窗口,但是我写了关闭方法,新弹出来的窗口仍然无法关闭,关闭父窗口就都关闭了. 3.还有一个就是重复点击这个按钮,会一直往外弹,这个怎么解决? 解决方案 可否贴上代码,供解答者调试呢? 这样说感觉也不太清楚呢. 解决方案二: 1.新弹出的窗口是JFrame的么,关闭时是否有其他代码在使用? 2.重复点击按钮会一直弹出,如果你只想弹出一个的话,你最好设置一个变量来

求java图形界面开发

问题描述 哪位大神告诉我怎样开发java图形界面的程序谢谢!!! 解决方案 解决方案二:你可以看一些相关内容,很多的解决方案三:看java的经典图形库awt和swing解决方案四:告诉你个Swing开发的好网站.http://www.java2s.com/CN/Code/Java/2D-Graphics-GUI/Transform.htm再告诉你个用swing做的3D程序,有源码的哦.....笑去吧.....http://www.sweethome3d.com做java开发,多逛开源网站,不管是

jav图形界面问题-关于java图形界面如何实现下拉框含有复选框

问题描述 关于java图形界面如何实现下拉框含有复选框 想要使用swing实现下拉框中含有复选框的功能;希望能支持多选;在网上没找到,这样的图形界面是不是真的做不出来啊???求解!!