GridLayout布局管理器是以表格形式进行管理的,在使用此布局管理器时必须设置显示的行数和列数,GridLayout类的构造方法如表11.9所示。...{ 5 public static void main(String[] args) { 6 //创建JFrame对象和两个面板对象 7 JFrame jFrame...例12-22运行结果 图12.22中,运行程序弹出Frame窗口,创建一个窗口对象和两个面板对象jPanel1、jPanel2,将面板jPanel2设置成1行4列的网格式页面布局,将面板jPanel1的页面布局设置为卡片式...jFrame调用add()方法将两个面板添加到窗口jFrame中,jPanel1调用add()方法将三个对象添加到面板jPanel1中,将名字为jTextField的文本框显示在卡片式布局的页面上,将4...个命令按钮分别添加到面板jPanel2中,然后将各组件显示在窗口中。
);//将菜单条设置给窗口 JMenu: add(JMenuItem);//在菜单中添加菜单项 add(JMenu);//在菜单中添加子菜单 addSoearator();//添加分割线 JMeunItem...add到这个窗体中,才会显示 /** * 展示java swing中的常见组件 */ public class UserInputForm extends JFrame{...当然,这个中间层容器也必须添加到底层容器JFrame中才会启作用。否则显示不出来 即必须有一个类继承至JFrame,且这个类将面板或是布局,add进去。...然后实例化这个继承至JFrame的类,才看的到。 1:JPanel面板:常用JPanel作为一个面板,最普通的面板,向该面板中添加组件。...这些组件层叠的放在一起,只有最前面可以显示。 顺序并不是栈,而是队列,即第一个添加进去的组件,显示在最前面,后面的一次往后排。
与顶层容器不同的是,面板不能独立存在,必须被添加到其他容器内部。在进行界面设计时,通常将用户界面划分成若干个区域,每个区域用一个面板。这样处理的好处是:将窗口内容结构化,有利于管理、更换、调试。...例12-3运行结果 图12.5中,运行程序结果,先创建了JFrame窗体,然后设置布局,创建一个容器JPanel,最后将中间容器添加进JFrame窗体。...如果需要在JScrollPane面板中放置多个组件,需要先将多个组件放置在JPanel面板容器上,然后将JPanel面板作为一个整体组件添加到JScrollPane面板中。...public JScrollPane(Component view, int x, int y) 创建一个 JScrollPane,它将视图组件显示在一个视口中,视图位置可使用一对滚动条控制。...例12-4运行结果 案例12-4中,在JTextArea文本区域组件不断输入内容回车,当内容超出滚动面板宽度和高度的时候,JScrollPane会出现横向和纵向滚动条。
javax.swing.*; public class HelloWorldSwing{ 创建并显示GUI,出于线程安全的考虑 //这个方法在事件调用线程中调用 private static void...JFrame中指定位置,面板中我们可以添加文本字段,按钮及其他组件 //哎哟,说了一大堆,其实就是可以在窗口里面添加东西啦 //当然前提是用JPanel创建了一个面板对象panel,因为我们要添加只能通过这个面板...(当然还有其他方法哈,不止这一个) JPanel panel = new JPanel(); //日常添加到窗口frame中 frame.add(panel); //调用用户定义的方法并添加组件到面板...JPanel java图形用户界面(GUI)工具包swing中的面板容器类,包含在javax.swing包中,可以进行嵌套,功能是对窗体中具有相同逻辑功能的组件进行组合,是一种轻量级容器,可以加入到JFrame...JLabel JLabel对象可以显示文本、图像或同时显示二者。可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐。默认情况下,标签在显示区内垂直居中对齐。
jFrame = new JFrame("TestDialog"); JButton jButton = new JButton("显示dialog"); jFrame.add...} public static void main(String[] args) { new TestImageIcon(); } } 运行结果: 文件位置图: 四、面板...1、普通面板JPanel 代码演示: package com.zibo.Lession05; import com.zibo.lession01.TestPanel; import javax.swing...JScrollPane 代码演示: package com.zibo.Lession05; import javax.swing.*; import java.awt.*; //带滚动条的面板 public...JTextArea jTextArea = new JTextArea(20, 50); jTextArea.setText("TestJScrollPane"); //面板
1、swing窗口和面板容器 窗口:(JFrame) 这里是类继承【JFrame】,然后完成基本设置,一定要显示true,不然看不见。...1 cards.add(p2,"card2"); //向卡片式布局面板中添加面板2 CardLayout cl=(CardLayout)(cards.getLayout()); cl.show...(cards,"card1"); //调用show()方法显示面板1 //cl.show(cards,"card2"); //调用show()方法显示面板2 add(cards);...(cards,"card1"); //调用show()方法显示面板1 cl.show(cards,"card2"); //调用show()方法显示面板2 add(cards);...); scrollPane.setViewportView(list); //在滚动面板中显示列表 String[] listData=new String[12]
12.3.1 JLabel 标签是用来在窗口中显示文字或图像的控件,由javax.swing包中的JLabel类创建。...创建完的Label对象可以通过Container类中的add()方法,加入到容器中,JLabel不会对输入事件做出反应,因此它无法获得键盘焦点。JLabel类的常用方法如表12.5所示。...",JLabel.CENTER) ; 7 jFrame.add(jLabel) ; // 将组件件入到面板 8 9 jFrame.setSize...例12-4运行结果 案例12-5中,在运行结果上显示一个空的JFrame窗口,在该窗口上显示一个JLable的标签,第7行代码用来将JLablel对象添加到JFrame窗口上。...这些组件在实际开发中应用广泛,接下来对这些组件逐个讲解。 提交按钮由JButton对象创建,它的常见方法如表12.6所示。
在Swing中可以使用JRadioButton完成一组单选按钮的操作,JRadioButton的常用方法如下表。...JRadioButtonDemo01 { public static void main(String args[]) { new MyRadio(); } } 运行效果: 上面的程序中正确的显示了一个面板...,而且因为在设置面板的时候使用了setBorder()方法,所以在面板上定义了一个标题的边框。...JRadioButtonDemo01 { public static void main(String args[]) { new MyRadio(); } } JRadioButton事件处理 在单选按钮操作中...pan.setBorder(BorderFactory.createTitledBorder("选择性别")); //设置排版 pan.setLayout(new GridLayout(1, 3)); //面板中加入两个单选按钮
Java Swing的基础 首先需要注意的就是JFrame这个类,如果在main类整直接new一个出来是没有任何的变化,需要设置一个setvisible为true来显示出来。...public class AlgorFrame extends JFrame { private int canvasWith; private int canvasHeight;...JFrame是最上层的一个窗口,如果要绘制的话是不可以在窗口本身绘制的。MenuBar就是最大化最小化关闭等等的操作。...Content Pane其实是一个容器,可以装载其他的组件,最常用的就是面板,Jpanel就是一个面板,后面的绘制都会画在Jpanel上。也就是说想要画上东西就需要在Jframe上加入Jpanel。...这个时候窗口大小和画布大小就是两个不一样的大小了,如果想要窗口大小自适应画布大小,就可以调用pack这个函数自适应。 绘制 在Jpanel类里面有一个paintComponent方法,这个方法
} 示例二 getClass() 在Java中,getClass()是Object类的一个方法,它返回对象的运行时类。...该类的构造方法有 6 种重载形式,但是无法通过参数赋值来指定滚动条,这一点与 AWT的TextArea 不同。...应该调用 JScrollPane对象的成员方法 setViewportView()将 JTextArea 对象添加到JScrollPane 面板中,JScrollPane 面板是具有滚动条的面板。...它们都被添加到一个JPanel中,并且通过ButtonGroup对象进行分组,以确保只能选择一个选项。当选择一个选项时,会显示相应的信息在JLabel中。...在这个示例中,我们使用了DefaultListModel来保存项目列表,并将其作为参数传递给JList构造函数。然后,我们创建了两个按钮,一个用于添加项目,另一个用于删除选定的项目。
例如:一个文本模型中的方法有:在当前文本中添加或者删除字符以及把当前文本作为一个字符串返回等。再次强调,模型是完全不可见的,显示存储在模型中的数据是视图的工作。 ...); // 显示框架 f.setVisible(true); } } class JCheckBoxFrame extends JFrame { // 用来显示数据的...,该面板是用来加两个复选框组件 JPanel buttonPanel = new JPanel(); // 创建一个复选框组件 bold = new JCheckBox...在许多情况下,我们需要用户 只选择几个框中的一个。当用户选择另外一个时,前一个选择就自动取消。...最常见的用法是在一个面板周围设置一 种边界,然后用其他用户界面元素(如单选按钮)来填充该面板。
BorderLayout.NORTH); // 添加姓名标签在中央 p.add(name, BorderLayout.CENTER); // 添加按钮控件在南方...p.add(btn, BorderLayout.SOUTH); // 调整大小,这个是java中无法设置标签的大小 rFrame.pack();...BorderLayout.NORTH); // 添加姓名标签在中央 p.add(name, BorderLayout.CENTER); // 添加按钮控件在南方...p.add(btn, BorderLayout.SOUTH); // 调整大小,这个是java中无法设置标签的大小 rFrame.pack();...数组版本默认读取最大100个人,如果班级学生超过100人了自行修改数组readclass方法中的的数组长度即可。 运行截图:
需要使用Contariner容器向其中添加组件 容器Container是一个类,实际上是Component的子类,因此容器本身也是一个组件,具有组件的所有性质,但它的主要内容是容纳其他组件和容器,在其可视区显示这些组件...其实就是获取内容面板,JFrame无法直接添加组件需要getContentPane()获取面板,然后再内容面板上添加组件。...因此平时添加的窗口组件都是添加到ContentPane里的, 通常都是分开写的 Container c=this.getContentPane();//初始化一个容器 c.add(****); //在容器上添加控件...中添加元素,其中this指针指向的就是这个JFrame 关于边界布局方法具体参考: https://xuzhiwei.blog.csdn.net/article/details/111302347...//向Jframe类型的对象中添加一个布局并且添加组件 //边界布局具体参考博客 // https://xuzhiwei.blog.csdn.net/article
我们使用了三个面板,并使用CardLayout将它们组合到了一个容器中。...在每个面板中,我们添加了一个按钮,点击按钮会跳转到其它面板。在actionPerformed方法中,我们使用CardLayout的show方法来实现面板跳转。 2....JOptionPane是Swing中的一个弹出式对话框,可以用来显示一些提示信息或者询问用户的选择。...我们使用JOptionPane显示一个询问对话框,询问用户是否要跳转到第二个面板。...当用户点击“是”按钮时,我们可以在actionPerformed方法中实现界面跳转。
它可以从数组、列表或模型中获取数据。...问题2:滚动面板缺失。大表格可能超出窗口大小,需要添加JScrollPane。 避免方法:使用JScrollPane包裹JTable。 2....JTextArea JTextArea用于多行文本输入和显示。...避免方法:在创建JTextArea时设置初始文本。 结语 JTable、JTree和JTextArea是Swing中展示和处理数据的重要组件。...在实践中,结合不同的布局管理器和组件,你可以构建出各种复杂的界面。
程序中各个组件的载体,可以将JFrame看作是承载这些Swing组件的容器。...可以通过继承java.swing.JFrame类创建一个窗体,在这个窗体中添加组件,同时为组件设置事件。...创建图标 在Swing中通过Icon接口来创建图标,可以在创建时给定图标的大小、颜色等特性。...如果需要在JScrollPane面板中放置多个组件,需要将多个组件放置在JPanel面板上,然后将JPanel面板作为一个整体组件添加在JScrollPane组件上。...自定义这个类除了实现该接口外,还可以继承AbstractListModel类,在该类中有两个操作下拉列表框的方法: getSize():返回列表的长度 getElementAt(int index):返回指定索引处的值
/** * Created by ${wuyupku} on 2019/3/14 16:47 */ import java.awt.Graphics; import javax.swing.JFrame...; import javax.swing.JPanel; public class DrawLineFrame extends JFrame { DrawLinePanel linePanel...frame = new DrawLineFrame(); // 创建窗体类的实例 frame.setVisible(true); // 显示窗体 } public DrawLineFrame...super(); // 调用超类的构造方法 setTitle("绘制直线"); // 窗体标题 setBounds(100, 100, 273, 167); // 窗体的显示位置和大小...setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 窗体关闭方式 add(linePanel); // 将面板类的实例添加到窗体容器中
GUI Graphical User Interface 用户图形界面 a) 主要包括菜单栏,窗口,工具条,按钮等; b) Java提供了两个GUI开发的包 java.awt 和 java.swing...它规定了所有GUI组件的的的基本特性 j ava.swing 是在java.awt 的基础上构建起来的,引入了许多新的功能和新的特性 c) GUI组件 i. ...实例:JFrame frame = new JFrame(String title); ii. setLocation(int x, int y) 设置窗体的显示位置 iii...JPanel可以作为面板组件添加至窗体 1. Jframe.getContentPane.add(JPanel p); 2. ...Jframe.setContentPane(JPanel p); //添加面板JPanel JPanel p = new JPanel();
(1)窗口标题为“GUI程序”,大小为400X300, 居中显示:窗口上有一个面板,面板背景色为灰色; (2)面板上有一个标签,内容为“河南城建学院”,字体为“隶书”,字号“20”:菜单栏上有两个菜单“...字体”和“退出”, 菜单“字体”中有菜单项“宋体”和“楷体”, 菜单“退出”中有菜单项“关闭”; (3)当点击菜单项“宋体”时,标签内容“河南城建学院”显示宋体样式:点击菜单项“楷体”时,标签内容“河南城建学院...”显示楷体样式;点击菜单项“关闭”时,退出应用程序。...public class GuiDemo { public static void main(String[] args) { // 创建 "GUI程序" 窗口 JFrame...(JFrame.EXIT_ON_CLOSE); // 创建面板 JPanel panel = new JPanel(); // 设置面板背景色为灰色
Main.java package myCalculator; import javax.swing.JFrame; public class Main { public static void...); frame.setVisible(true);//显示出来 frame.setLocationRelativeTo(null);//将窗口显示在屏幕中间 }...} MyFrame.java package myCalculator; import javax.swing.JFrame; public class MyFrame extends JFrame...2中的每个按钮注册监视器 public void addButton1(String label, ActionListener listener) { JButton button...3中的每个按钮注册监视器 public void addButton2(String label, ActionListener listener) { JButton button
领取专属 10元无门槛券
手把手带您无忧上云