简介 布局是指 GUI 程序容器中各个组件的排列顺序、彼此之间的位置关系、组件大小,以及当容器移动或调整大小后组件的变化。...当改变使用 BorderLayout 的容器大小时, NORTH 、 SOUTH 和 CENTER区域水平调整,而 EAST 、 WEST 和 CENTER 区域垂直调整。...最后将p2添加到Frame的中间区域中。设置Frame的大小为最佳大小,并将其设置为可见。这样就完成了一个简单的计算器程序的界面设计。...最后,将面板添加到主窗口中,并设置了主窗口的大小和可见性。运行该示例,你将会看到一个3x3的网格布局,每个单元格中都有一个按钮。...最后,调用pack方法设置Frame的大小,并将其设置为可见。 在代码中还定义了一个addComponent方法,用于将组件添加到容器中,并设置其约束条件。
与GridLayout布局管理器不同的是,GridBagLayout类允许容器中各个组件的大小不相同,还允许单个组件所在的显示区域占多个网格。...、纵向跨越几个网格,两个属性的默认值都是1 fill 如果组件的显示区域大于组件需要的大小,设置是否以及如何改变组件大小 weightx和weighty 设置组件占领容器中多余的水平方向和垂直方向空白的比例...布局管理器的使用,如例12-19所示。...jFrame调用add()方法将两个面板添加到窗口jFrame中,jPanel1调用add()方法将三个对象添加到面板jPanel1中,将名字为jTextField的文本框显示在卡片式布局的页面上,将4...个命令按钮分别添加到面板jPanel2中,然后将各组件显示在窗口中。
在Java中,我们可以使用JFrame来创建图形化用户界面(GUI)。JFrame是Java中的一个类,用于创建窗口和应用程序的框架。 在本篇博客中,我们将介绍如何使用JFrame来生成界面。...; 然后,我们创建一个JFrame对象并设置一些基本属性,如标题和大小: JFrame frame = new JFrame("JFrame界面生成器"); frame.setSize(400, 300...); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 接下来,我们可以创建一个JPanel对象,并将其添加到JFrame中。...JPanel可以用来组织和管理其他组件,如标签和按钮。...用户可以根据自己的需要添加其他组件和功能。 在本篇博客中,我们介绍了如何使用JFrame来创建一个简单的界面生成器。希望这篇博客对你有所帮助!
; import javax.swing.JLabel; import javax.swing.WindowConstants; /** * 1:JDialog窗体时Swing组件中的对话框, *... new JDialogTest().setVisible(true);; } }); container.add(jb);//将按钮添加到容器中...);//将标签中的文字置于标签中间的位置 container.add(jl);//将标签添加到容器中 JButton jb=new JButton("点我");//实例化一个按钮属性... new MyJDialog(MyFrame.this).setVisible(true); //上面一句话使对话框窗体可见,这样就实现了当用户单机该按钮后将弹出对话框的功能...窗体形式基本相同,甚至在设置窗体的特性 //时调用的方法名称都基本相同,如设置窗体的大小,设置窗体的关闭状态等 public MyJDialog(MyFrame frame){//定义一个构造方法
独立于本地平台的Swing组件被称为轻量级组件;而依赖于本地平台的 AWT 组件被称为重量级组件。 ...Swing组件和AWT组件的对应关系: 大部分情况下,只需要在AWT组件的名称前面加个J,就可以得到其对应的Swing组件名称,但有几个例外: 1....JScrollBar: 对应于 AWT 里的 Scrollbar 组件,注意两个组件类名中 b 字母的大小写差别。 4....f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置jFrame最佳大小并可见 f.pack();...4.关闭JFrame窗口,也无需监听器,只需要调用setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)方法即可,更简单。
Java Swing是Java GUI编程库的一部分,提供了丰富的组件和布局管理器来构建桌面应用程序。在Swing中,JFrame、JPanel和JButton是构建用户界面的基础组件。...本文将介绍这三个组件的用法,常见问题以及如何避免错误,同时提供代码示例。 1. JFrame JFrame是Swing中的顶级容器,用于展示应用程序的主窗口。...避免方法:确保在添加所有组件后调用setVisible(true)。 问题2:忘记设置关闭操作。默认情况下,关闭窗口不会终止应用程序。...避免方法:使用setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)关闭应用程序。 2. JPanel JPanel是Swing中的容器组件,用于组合其他组件。...如果直接将组件添加到JFrame,可能会导致布局混乱。 避免方法:先创建JPanel,再将组件添加到JPanel,最后将JPanel添加到JFrame。 3.
Java Swing介绍 1.Swing是一个为java世纪的GUI工具包 2.Swing是JAVA基础类的一部分 3.Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表 4个器件...(JFrame.EXIT_ON_CLOSE); //多了一个对frame对象窗口的操作,嗯 设计下窗口大小还不错 frame.setSize(350,200); //创建面板JPanel,这个类似于HTML...//调用用户定义的方法并添加组件到面板 placeComponents(panel); //好的,日常设置界面可见 frame.setVisible(true); } //基本框架完成,现在往里面添加东西吧...JPanel java图形用户界面(GUI)工具包swing中的面板容器类,包含在javax.swing包中,可以进行嵌套,功能是对窗体中具有相同逻辑功能的组件进行组合,是一种轻量级容器,可以加入到JFrame...默认情况下,标签在显示区内垂直居中对齐。默认情况下,只显示文本的标签是开始边对齐。而只显示图像的标签则水平居中对齐。好累 这些官方话敲的我好累。。。
,如例12-5所示。...",JLabel.CENTER) ; 7 jFrame.add(jLabel) ; // 将组件件入到面板 8 9 jFrame.setSize...(true) ; //设置窗体可见 12 } 13} 程序的运行结果如图12.7所示。...例12-4运行结果 案例12-5中,在运行结果上显示一个空的JFrame窗口,在该窗口上显示一个JLable的标签,第7行代码用来将JLablel对象添加到JFrame窗口上。...例12-6运行结果 图12.6中,运行程序先创建了JFrame窗体,然后指定URL引入图片,新建按钮时将icon以参数传入了自定义的图标。
lable标签组件添加到内容窗格上 c.add(lable); //设置本窗口是否可见 setVisible(true); } public static void main(String...add(jp);//将面板添加到窗口 setVisible(true);//设置窗口可见 setDefaultCloseOperation(EXIT_ON_CLOSE);//别忘关闭窗口...,size.height); jp.add(jsp); //将JScrollPane添加到JPanel容器中 add(jp); //将JPanel容器添加到JFrame...,并将其追加到此菜单的末尾 add(Component c) 将某个组件追加到此菜单的末尾 add(Component c,int index) 将指定组件添加到此容器的给定位置 add(JMenuItem...a) 添加一个指派动作的新的 JButton addSeparator() 将默认大小的分隔符添加到工具栏的末尾 addSeparator(Dimension size) 将指定大小的分隔符添加到工具栏的末尾
而关于container容器我们应该有这样的认识:Swing组件中的窗体通常是与容器相关联的,所以在一般情况下,建立完JFrame窗体后,我们会调用getContentPane()方法将窗体转换为容器,...//将组件添加到容器 JButton jb2 = new JButton("这是绝对布局2"); jb2.setBounds(200, 100, 200, 30); //为组件设置绝对坐标..., 200, 30); //为组件设置绝对坐标 container.add(jb3); //将组件添加到容器 setLayout(null); //清空布局管理器,即取消原来的边界布局管理器...,如当alignment=0时,流布局管理器中的组件按照从左到右的顺序排列,当alignment=1时,流布局管理器中的组件按照从中间向两端的顺序排列。...边界布局管理 在默认不指定窗体布局的情况下,Swing组件的布局模式就是边界布局(BorderLayout),该布局管理器的特征就是组件会按照一定要求布满整个容器的边界, 边界布局管理器可以将容器划分成东
12.1 常用布局管理器 布局管理器也就是GUI中的布局设置,是指窗口上的组件遵循一定的规则来排列,并会随着窗口大小的变化来变化组件大小和位置的布局方式。...,接下来通过一个案例来演示FlowLayout布局管理器的使用,如例12-16所示。...将组件设置在下方 BorderLayout.NORTH 将组件设置在北方 BorderLayout.CENTER 将组件设置在中央 public BorderLayout() 创建一个没有间距的BorderLayout...,接下来通过一个案例来演示BorderLayout布局管理器的使用,如例12-17所示。...,最后设置Frame窗体的长宽以及可见。
* 默认情况下,组件在每一行上都是居中排列的,但是通过设置也可以更改组件在每一行上的排列位置 * * 2:FlowLayout类中具有三种构造方法 * alignment参数使用流布局管理器后组件在每一行的具体摆放位置...,然后设置容器使用边界布局管理器 * 最后在循环中将按钮添加到容器中,并设置组件布局 *2:add()方法提供了在容器中添加组件的功能,并同时设置组件的摆放位置 * */...setSize(350,200);//设置窗体的大小 setVisible(true);//设置窗体可见 //设置窗体的关闭方式 setDefaultCloseOperation...,每一个组件的大小都相同,并且网格中空格的个数由网格的行数和列数决定 * 如一个两行两列的网格能产生4个大小相等的网格, * * 2:组件从网格的左上角开始,按照从左到右,从上到下的顺序加入到网格中...setTitle("这是一个网格布局管理器的窗体"); setSize(300,300);//设置窗体的大小 setVisible(true);//设置窗体的可见
BoxLayout布局管理器,这种布局方式是在行或列中楞放组件.如果沿用水平方向排列组件,当组件的总宽度超出容器的宽度时,组件不会换行,而是继续沿同一行排列组件。...如果采用竖直方向排列组件的方式,当组件的总高度超出容器的高度时,组件也不会换列,而是沿同列继续排列组件。 这时需要改变容的大小才能看到所有的组件,即有些组件可能处于不可见状态。...布局管理器的使用,如例12-21所示。...)); 18 //4.设置jFrame最佳大小,并可见 19 jFrame.setVisible(true); 20 jFrame.setDefaultCloseOperation...如果将BoxLayout.X_AXIS改为BoxLayout.Y_AXIS,则程序的运行结果为12.23右图。
AddImpl()是最终把组件添加到容器中的方法。如果直接把组件添加到小应用程序中,那么JApplet.addImpl()将弹出一个异常信息。...应用程序必须提供main方法,必须把一个窗体实例化,随后确定该窗体的大小(注:可使用JFrame.pack()显式地给出窗体的大小)并使该窗体可见。 ...通常为JFrame的实例选择带一个字符串的构造方法,不带参数的构造方法将产生没有标题的窗体。 ...4)不要把重量组件添加到Swing内部窗体中。 2.4 Swing和线程 大多数情况下,Swing是线程不安全的,即只能从单线程来访问Swing组件。...组件应该添加到根窗格的内容窗格中,同理,必须为内容窗格设置布局管理器而不是为小应用程序和应用程序布局管理器。
12.2.1 JFrame JFrame窗体是一个容器,它是一个独立拥有标题栏和尺寸重置图标的窗口组件,是Swing程序中各个组件的载体,可以将它看作是承载这些Swing组件的容器。...可以通过继承JFrame类创建一个窗口,在这个窗口中添加组件,同时为组件设置事件,拥有最大化、最小化、关闭的按钮。 JFrame类常用的方法如表12.1所示。...接下来演示JFrame类的具体使用,如例12-1所示。...(JFrame.EXIT_ON_CLOSE); setVisible(true); // 设置容器可见 } } 程序的运行结果如图12.2所示。...12.2.1 JDialog 对话框需要依赖于一个窗口,它会随着窗口的关闭而关闭,随着窗口的最小化而隐藏,随着窗口的还原而再次显示。 对话框容器分为模态对话框和非模态对话框两类。
"轻量级的组件"; * *2:窗体作为Swing应用程序中组件的承载体,处于非常重要的位置,Swing中常用的窗体包括 *JFrame,JDialog * *3:JFrame窗体是一个容器,它是...Swing程序中各个组件的载体,可以将JFrame看作是承载这些 *Swing组件的容器 * *4:读者大致应该有这样一个概念 *Swing组件的窗体通常和组件的容器相关,所以在JFrame对象创建完成后..., *需要调用getContentPane()方法将窗体转换为容器,然后在容器中添加组件 *或设置布局管理器,通常这个容器用来包含和显示组件,如果需要将组件添加到容器, *可以使用来自Container...* * *过程如下 *第一创建一个JFrame窗体对象 *第二通过getContentPane()方法将窗体转化为容器 *第三在容器中添加组件或设置布局管理器 *第四通常这个容器用来包含和显示组件...窗体"); } } //实例演示JLabel标签的使用,实例化JLabel对象,然后将标签实例添加到容器中,然后可以设置容器的布局, package com.swing; import java.awt.Color
JMenuBar组件是用来摆放JMenu的菜单栏组件,当创建很多JMenu组件后,需要通过JMenuBar组件将JMenu组件加入到窗体中。...,接下来通过一个案例来演示下拉式菜单的使用,如例12-13所示。...public JMenuItem add(JMenuItem item) 将菜单项添加到弹出式菜单的末尾,设置弹出式菜单的可见性 表12.15中列出了JPopupMenu类的构造方法,它的常用方法和JMenu...类似,这里就不再赘述,读者可以参考JDK的使用文档,接下来通过一个案例来演示弹出式菜单的使用,如例12-14所示。...actionPerformed(ActionEvent e) { 14 jf.dispose(); 15 } 16 }); 17 jpm.add(item1); // 将菜单项添加到菜单
JLabel label = new JLabel(icon); // 将JLabel添加到JFrame窗口中 frame.getContentPane...设置为非透明 // 将JLabel添加到JFrame窗口中 frame.getContentPane().add(l1); // 显示窗口...void addActionListener(ActionListener listener):将指定的动作侦听器添加到按钮上。...().add(panel); // 设置 JFrame 的大小 frame.setSize(400, 150); // 设置 JFrame 的可见性...JScrollPane scrollPane = new JScrollPane(textArea); // 将JScrollPane添加到JFrame
密码框组件与文本框组件的定义和用法基本相同,不同的是密码框将用户输入的字符串以某种符号进行加密。...表12.12中列举出了JPasswordField类的构造方法,接下来通过一个案例来演示JPasswordField类的使用,如例11-21所示。...(jLabel); 12 jFrame.add(jpwd); // 将文本框添加到JFrame 13 JButton jb = new JButton("清空"); 14...)方法设置回显字符为“*”,增加标签对象jLable,将标签对象和将密码框添加到JFrame窗体,接着创建一个清空按钮将其添加到JFrame窗体。...把从位置begin开始到end结束的字符串用str代替 表12.13中列举出了JTextArea类的常用方法,接下来通过一个案例来演示JTextArea类的使用,如例12-12所示。