JavaSwing界面设计(所有控件及示例)

合集下载

JavaSwing组件大全实例演示

JavaSwing组件大全实例演示

JavaSwing组件⼤全实例演⽰⼀抛砖引⽟ 本⽂指在利⽤⼀个⼩”Swing 组件⼤全”来引导⼤家学习这门语⾔,熟悉Java Swing的各个组件。

并在学习过程中参考作者这⼀程序的⽅法和思想,最终形成⾃⼰的思维⽅式和学习⽅式。

你能举⼀返三是作者最开⼼的事情。

⼩程序演⽰了Java Swing⼤部分组件。

最后附上了全部代码及详细的注释说明。

希望本⽂能对⼤家学习Java有所帮助。

随着Java风潮席卷国内,学习Java的⽅法和路径越来越多。

⽽在⼤量的书本前,在Java庞⼤的类库前⼤⼤家都有点迷失⽅向的感觉,是学 J2EE,J2ME还是。

然⽽所有的这些都或多或少的离不开J2SE。

万丈⾼楼平地起。

J2SE是整个Java的基础,学好了这个对Java的各个⽅向都是很有利的。

⽽学习J2SE的最初点就在界⾯设计,因为界⾯编程是你来感觉最直接的⼿段,是提⾼⼤家编程兴趣的很好开始,因为你写完程序编译后可马上看到⾃⼰的成果。

⽽不像后台编程做完了都感受不到效果。

⽽好的界⾯也是你测试你其他程序的基础。

界⾯设计!不就是拖拉操作吗?如果是VB,VC等可视化的编程,的确只是⼀些拖拉操作,由于Java语⾔的设计中所有的东西都是程序代码,在 Java中如果想要设计⼀个好的界⾯,可不是简单的拖拉操作能完成的。

即使使⽤了如JBuilder这么强⼤的可视化⼯具,你也得亲⾃动⼿写⼀些界⾯设计代码才能很好的完成你的任务。

如果你能在此基础上理解Java界⾯设计的思想,对你学习这门语⾔将有莫⼤的帮助。

Java界⾯设计主要涉及Awt,Swing两⼤类库,Swing是Awt的扩展和功能加强。

下⾯我们就以Swing为基础来说说整个Java的界⾯设计。

⼆感受效果 在开始之前,让我们看看这篇⽂章要达到的效果,有了⽬标和成果才有学习的兴趣,起码我是这样认为和学习的。

如下图所⽰,这就是我们设计的界⾯,它包括了Swing中⼤部分常⽤的组件。

有些功能界⾯上反映不出来,⼤家可尝试编译源代码点南击各个部分,看看它们的响应事件。

JavaSwing界面设计(所有控件及示例)

JavaSwing界面设计(所有控件及示例)
➢标签内容一般不需要改变,但也可以使用setText和setIcon方 法进行改变 ➢例如当使用同一标签显示不同的图片时,就可使用setIcon方 法实现
25
示例:学生信息管理系统
步骤二:添加标签(要录入的基本信息的名称)
JFrame f=new JFrame(); …… Container con=f.getContentPane(); Jpanel pan=new JPanel(); JLabel l_xm=new JLabel("姓名"); pan.add(l_xm); JLabel l_xb=new JLabel("性别"); pan.add(l_xb); …… con.add(pan); f.setVisible(true);
3
用户界面概述
用户界面的类型
字符用户界面(CUI):例如,MS-DOS 图形用户界面(GUI):例如,Microsoft Windows
GUI的组件
组件
基本的控制组件,例如:Button、Label等。 容器:能容纳和排列组件的组件
组件继承它的父容器的性质
4
Label
Frame Window
创建图标和图像对象 a) ImageIcon ii = new ImageIcon(“x.gif ”); b) Image image = ii.getImage();
设置 setIconImage(image);
19
界面的基本组织方式
由JFrame创建初始的用户界面 由JPanel、JScrollPane、JTabbedPane、JSplitPane、
添加中间容器JPanel JFrame f=new JFrame(); f.setTitle("学生信息管理系统");

java-Swing控件的用法和范例

java-Swing控件的用法和范例

java-Swing控件的用法和范例类JTableJTable用来显示和编辑规则的二维单元表。

JTable有很多用来自定义其呈现和编辑的设施,同时提供了这些功能的默认设置,从而可轻松地设置简单表。

例如,要设置一个10行10列的表:TableModel dataModel=new AbstractTableModel(){public int getColumnCount(){return10;}public int getRowCount(){return10;}public Object getValueAt(int row,int col){return new Integer(row*col);} };JTable table=new JTable(dataModel);JScrollPane scrollpane=new JScrollPane(table);注意,如果要在单独的视图中(在JScrollPane外)使用JTable并显示表标题,则可以使用getTableHeader()获取并单独显示它。

设计使用JTable的应用程序时,要严格注意用来表示表数据的数据结构。

DefaultTableModel 是一个模型实现,它使用一个Vector来存储所有单元格的值。

该Vector由包含多个Object 的Vector组成。

除了将数据从应用程序复制到DefaultTableModel中之外,还可以TableModel接口的方法来包装数据,这样可将数据直接传递到JTable,如以上示例所示。

这通常可以提高应用程序的效率,因为模型可以自由选择最适合数据的内部表示形式。

在决定使用AbstractTableModel还是使用DefaultTableModel方面有一个好的实践经验,即在创建子类时使用AbstractTableModel作为基类,在不需要创建子类时则使用DefaultTableModel。

Java程序设计第11章 Swing程序设计

Java程序设计第11章  Swing程序设计
Java实用教程
第11章 Swing程序设计
第11章 Swing程序设计
11.1 11.2 11.3 11.4 11.5 11.6 Swing概述 创建窗体 常用布局管理器 常用面板 常用组件 常用事件处理
11.2 创 建 窗 体
在开发Java应用程序时,通常情况下利用JFrame 类创建窗体。利用JFrame类创建的窗体分别包含标题、 最小化按钮、最大化按钮和关闭按钮。 JFrame类提供了一系列用来设置窗体的方法,例 如通过的setTitle(String title)方法,可以设置窗体的标题; 通过setBounds(int x, int y, int width, int height)方法可以 设置窗体的显示位置及大小,该方法接受4个int型参数, 前两个参数用来设置窗体的显示位置,依次为窗体左上 角的点在显示器中的水平和垂直坐标,后两个参数用来 设置窗体的大小,依次为窗体的宽度和高度。
【例6】
11.4.1 JScrollPane面板
JScrollPane类实现了一个带有滚动条的面板,用 来为某些组件添加滚动条,例如在学习JList和 JTextArea组件时均用到了该组件,JScrollPane类提供 的常用方法如下表所示。
方 法 功 能
setViewportView(Component view)
静态常量 TOP 常 量 值 1 标签内容显示位置 文字显示在图片的上方
CENTER BOTTOM
0 3
文字与图片在垂直方向重叠显示 文字显示在图片的下方
【例8】
JButton(按钮)组件
JButton组件是最简单的按钮组件,只是在按下和释放 两个状态之间进行切换,可以通过捕获按下并释放的动作执 行一些操作,从而完成和用户的交互。JButton类提供了一 系列用来设置按钮的方法,例如通过setText(String text)方 法设置按钮的标签文本,通过下面的代码就可以创建一个最 简单按钮:

java swing 代码例子

java swing 代码例子

java swing 代码例子Java Swing是Java语言中用于构建图形用户界面(GUI)的一个开发工具包。

它提供了一组丰富的组件和容器,可以用于创建各种界面元素,如按钮、文本框、标签等。

下面是一些使用Java Swing的代码示例。

1. 创建一个简单的窗口```javaimport javax.swing.JFrame;public class SimpleWindow {public static void main(String[] args) {JFrame frame = new JFrame("简单窗口");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400, 300);frame.setVisible(true);}}```这段代码创建了一个简单的窗口,并设置了窗口的标题、关闭操作、大小和可见性。

2. 添加按钮和事件监听器```javaimport javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;public class ButtonExample {public static void main(String[] args) {JFrame frame = new JFrame("按钮示例");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JButton button = new JButton("点击我");button.addActionListener(e -> {JOptionPane.showMessageDialog(frame, "你点击了按钮");});frame.add(button);frame.setSize(400, 300);frame.setVisible(true);}}```这段代码创建了一个带有一个按钮的窗口,当按钮被点击时,会弹出一个对话框显示"你点击了按钮"。

图形用户界面设计——Swing

图形用户界面设计——Swing

Swing目录Swing (1)1.组件 (2)1.1容器组件 (2)Jframe常用方法: (2)Jpanel常用方法: (3)1.2视图组件(操作组件) (3)Jlabel(标签) (3)JTextField(单行文本) (3)JPasswordField(单行密码文本) (4)JButton(按钮) (4)2.基本组件 (4)JmenuBar (菜单栏类) (4)Jmenu (菜单类) (4)JmenuItem (菜单项类) (5)JtoolBar(工具栏) (5)JTextArea (纯文本的多行区域) (5)JRadioButton (单选按钮) (5)JCheckBox (复选框) (5)JcomboBox(下拉框) (5)3.高级组件 (6)Jlist (列表) (6)JPopupMenu, 右键菜单 (6)JFileChooser 文件选择框 (6)JSplitPane 拆分组件区域 (6)JTabbedPane 选项卡 (6)JDesktopPane 文档桌面 (7)JTree 树 (7)JTable 表格 (7)4.布局 (7)BorderLayout类(边框布局)→为窗体的默认布局 (7)BorderLayout的常用方法 (8)FlowLayout 类 (流布局或线性布局)→为面板的默认布局 (8)FlowLayout的常用方法 (8)GridLayout类(网格布局) (8)GridBagLayout(网格带布局) (8)类布置的组件的约束 (9)5.事件类 (9)ActionEvent(单击事件) (10)ComponentEvent(组件调整事件) (10)ContainerEvent(添加删除组件事件) (10)FocusEvent(焦点事件) (10)ItenEvent(复选框或列表项事件) (10)KeyEvent(键盘输入事件) (10)MouseEvent(鼠标事件) (11)TextEvent(文本域事件) (11)WindowEvent(窗体事件) (11)6.事件监听器 (11)MouseListener(鼠标事件侦听器接口) (11)MouseAdapter(鼠标事件的抽象适配器类) (11)WindowListener(窗口事件的侦听器接口) (11)WindowAdapter(窗口事件的抽象适配器类) (11)7.标准对话框 (11)JoptionPane(弹出对话框) (11)导包:javax.swing.*;swing:基于awt的扩展,获取系统资源库组件后会自动对其进行重新绘制。

Java程序设计:第八章 Swing图形界面程序设计

Java程序设计:第八章 Swing图形界面程序设计

原型 public FlowLayout(int align )
描述
FlowLayerout布局时,组件在容器以从左到右,从 上到下的方式排列。 align用于指定行对齐方式, FlowLayout.LEFT表示左 对齐,相应的有右对齐和居中对齐。
java.awt.Container的成员JLabel(2)
JFrame的成员方法
原型
public JFrame( ) public JFrame(String title) public void setDefaultCloseOperation( int operation) public void setSize(int width, int height) public void setVisible(boolean b) public Container getContentPane()
描述 构造一个无标题不可见的框架 构造一个标题为title的框架 设置当关闭框架时的操作,例如operation为 JFrame.EXIT_ON_CLOSE时表示退出程序
设置框架的大小
设置框架是否可见 返回当前框架的内容窗格
7
组件和容器 -JFrame和JLabel(3)
FlowLayout布局的成员方法:
4
组件和容器(3)
一般容器包括: 面板JPanel,滚动窗格JScrollPane,选项卡 窗格JTabbedPane和工具栏JToolBar。
专用容器包括:内部框架(JInternalFrame),分层窗格 (JLayedPane)、根窗格(JRootPane)、玻璃窗格(GlassPane )、内 容窗格(ContentPane)。
描述 构造一个父窗口为owner,标题为title,模式为 modal的对话框。Modal为true表示有模式,为false 表示无模式 设置对话框的大小

Java swing布局详解(附示例图)

Java swing布局详解(附示例图)

当选择使用JPanel和顶层容器的content pane时,需要考虑布局管理。

JPanel缺省是初始化一个FlowLayout,而content pane缺省是初始化一个BorderLayout。

下面将分别介绍几种最常用的布局管理器:FlowLayout、BorderLayout、BoxLayout、CardLayout、GridLayout和GridBagLayout。

代码演示每一个布局管理器都会有一个代码演示,xxxLayoutDemo.java(见附件)。

这些文件主要有三个方法组成:addComponentsToPane()提供布局逻辑(依据不同的布局管理器和UI内容)。

Java代码1public static void addComponentsToPane(Container pane) {。

}2/**3*createAndShowGUI()实例化一个JFrame,通过它的ContentPane加载布局逻辑内容。

4*/5private static void createAndShowGUI() {6// Create and set up the window.7JFrame frame = new JFrame("FlowLayoutDemo");8frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);9// Set up the content pane.10addComponentsToPane(frame.getContentPane());11// Display the window.12frame.pack();13frame.setVisible(true);14}15//main()程序入口,单独起一个线程,实例化UI。

16public static void main(String[] args) {17javax.swing.SwingUtilities.invokeLater(new Runnable() {18public void run() {19createAndShowGUI();20}21});22}FlowLayoutFlowLayout类是最简单的布局管理器。

java程序设计swing用户界面

java程序设计swing用户界面

• • • • • • • • •
1.文本域 构造方法 JTextField()--文本域的长度为一个字符 JTextField(int x)--文本域的长度为X个字 符 JTextField(String s)--文本域的初始字符 串为S JTextField(String s,int x)--文本域的初始 字符串为S,长度为X个字符
处理超长文本 • textArea.setLineWrap(true);
• • 例:TextAreaTest
• • • • • • • •
3.标签和标签组 标签是容纳文本的组件 常用来标识别的组件 构造方法: JLabel(String text) JLabel(Icon icon) JLabel(String text,int align) JLabel(String text,Icon,icon,int align)
• CardLayout • CardLayout的容器可以容纳多个组件, 但是实际上同一时刻容器只能从这些组 件中选出一个来显示,就象一叠“扑克
2.解决方法: 创建一个面板,先将组件添加到面板上, 再将面板添加到更大的容器里.代码如下:
• 符号表示 • BorderLayout常量被定义为字符串 • 例:BorderLayout.SOUTH被定义为字符 串:South • 上例应用时可写为: • add(button1,“North”); • add(button2,“South”);
• GridLayout • 把容器划分成若干行乘若干列的网格区 域,组件就位于这些划分出来的小格中 • 可用方法setLayout来设置网格布局 • setLayout(new GridLayout(行数、列数)) • setLayout(new GridLayout(3,4));

Java Swing GUI 编程技术及应用实例

Java Swing GUI 编程技术及应用实例
Java Swing GUI 编程技术及应用实例
1、Swing 组件技术简介 (1)GUI界面 用户与程序之间交互的一个控制面板,其内包含有 菜单、控件(或组件)和容器并能响应用户的事件。 (2)Swing组件是纯Java代码实现 Swing没有本地代码并不依赖操作系统的支持(但 JFrame、JDialog、JApplet除外),因此能够实现与 OS平台无关。 Swing在不同的平台上表现一致,并且有能力提供本地 窗口系统不支持的其它特性,和具备“可插接的外观和 感觉”特性(可以动态改变)。 (3)Swing组件分为四大类
顶级容器 JFrame、JApplet、 JDialog 特殊功能的容器 JLayeredPanel、 JRootPane InternalFrame、
JPanel、JScrollPanel、JToolbar JSplitPanel、JTabbedPanel、 基本组 件 JButton、 JCombobox、 JList、 JMenu、 JSlider、 JTextField 等
(1)与菜单编程实现有关的各个类 菜单条JMenuBar类——利用 setJMenuBar()方法加入窗口中 级联菜单JMenu类 菜单项JMenuItem类 选择性菜单项 JCheckBoxMenuItem类 选择性的菜单项但为圆点的 JRadioButtonMenuItem类 (2)主要的编程步骤
●基本组件 ●菜单条菜单组件 ● 容器组件 ● 弹出式菜单组件
(4)Swing组件所在的包
javax.swing 每个组件都以“J” 开头,各个组 件都是JComponent的子类。
对Swing组件的学习 应该重点掌握各个 组件的属性、方法 和事件编程 普通功能的容器
2、Swing组件的分类

java图形用户界面设计Swing常用组件(阅读)

java图形用户界面设计Swing常用组件(阅读)
setLayout(new GridLayout(6,6,2,2)); // 1.4中问题 1
for ( int i=j0f;.i<s3e6t;Bi+a+)c{kground(Color.blue);
JPanel jPanel = new JPanel();
jf.getContentPane().setBackground(Color.black);
文本框默认为可编辑的
获得文本域的内容 x= Integer.parseInt(text1.getText().trim()); 重新设置文本域的内容
resultText.setText(s);
NCEPU
Swing的常用组件——JTextField
获取两个文本域的输入并求和,然后显示在第三个文本域中。
NCEPU
其他Swing组件的使用
NCEPU
Swing的常用组件—复选框JCheckBox
JCheckBox(复选框)有选中和未选中两种状态,允许用户从 一组选项中进行多个选择。
getText setText
获取复选框的文本 设置复选框的文本
NCEPU
Swing的常用组件—复选框JCheckBox
}
class TFFrame extends JFrame { JTextField num1, num2, num3; public void launchFrame() { num1 = new JTextField(10); num2 = new JTextField(10); num3 = new JTextField(15); JLabel lblPlus = new JLabel("+"); JButton btnEqual = new JButton("="); btnEqual.addActionListener(new MyMonitor()); setLayout(new FlowLayout()); add(num1); add(lblPlus); add(num2); add(btnEqual); add(num3); pack(); setVisible(true); }

java swing图形用户界面

java swing图形用户界面

java swing图形用户界面实例1:(文本区,菜单)import javax.swing.*;import java.awt.*;import java.awt.event.*;public class MyFrame1 extends JFrame{JTextArea area;JMenuBar bar;JMenu menu;JMenuItem itemCopy,itemCut,itemPaste;menuListen listen =new menuListen();MyFrame1(){init();setBounds(100,100,400,400);setVisible(true);setDefaultCloseOperation(EXIT_ON_CLOSE);}public void init(){setLayout(new FlowLayout());area=new JTextArea(5,20);add(area);bar=new JMenuBar();setJMenuBar(bar);menu=new JMenu("编辑");bar.add(menu);itemCopy=new JMenuItem("复制");itemCut=new JMenuItem("剪切");itemPaste=new JMenuItem("粘贴");menu.add(itemCopy);menu.add(itemCut);menu.add(itemPaste);itemCopy.addActionListener(listen);itemCut.addActionListener(listen);itemPaste.addActionListener(listen);listen.setItem(itemCopy, itemCut, itemPaste, area);}public static void main(String[] args) {MyFrame1 win=new MyFrame1();}}class menuListen implements ActionListener{JMenuItem itemCopy,itemCut,itemPaste;JTextArea area;public void setItem(JMenuItem itemCopy,JMenuItem itemCut,JMenuItem itemPaste,JTextArea area){this.itemCopy=itemCopy;this.itemCut=itemCut;this.itemPaste=itemPaste;this.area=area;}public void actionPerformed(ActionEvent e){ if(e.getSource()==itemCopy){area.copy();}else if(e.getSource()==itemCut){area.cut();}else if(e.getSource()==itemPaste){area.paste();}}}实例2:(单选按钮,标签,按钮)import javax.swing.*;import java.awt.*;import java.awt.event.*;public class MyFrame2 extends JFrame{JTextArea area;JMenuBar bar;JMenu menu;JMenuItem itemCopy,itemCut,itemPaste;menuListen1 listen =new menuListen1();buttonListen lis=new buttonListen();JRadioButton r1,r2;JButton button;MyFrame2(){init();setBounds(100,100,400,400);setVisible(true);setDefaultCloseOperation(EXIT_ON_CLOSE);}public void init(){setLayout(new FlowLayout());area=new JTextArea(5,20);add(area);bar=new JMenuBar();setJMenuBar(bar);menu=new JMenu("编辑");bar.add(menu);itemCopy=new JMenuItem("复制");itemCut=new JMenuItem("剪切");itemPaste=new JMenuItem("粘贴");menu.add(itemCopy);menu.add(itemCut);menu.add(itemPaste);itemCopy.addActionListener(listen);itemCut.addActionListener(listen);itemPaste.addActionListener(listen);listen.setItem(itemCopy, itemCut, itemPaste, area);add(new Label("班级:"));r1=new JRadioButton("信息管理1班",true);r2=new JRadioButton("信息管理2班");ButtonGroup group=new ButtonGroup();group.add(r1);group.add(r2);add(r1);add(r2);button=new JButton("确定");add(button);button.addActionListener(lis);lis.setArea(area,r1,r2);}public static void main(String[] args) {MyFrame2 win=new MyFrame2();}}class menuListen1 implements ActionListener{JMenuItem itemCopy,itemCut,itemPaste;JTextArea area;public void setItem(JMenuItem itemCopy,JMenuItem itemCut,JMenuItem itemPaste,JTextArea area){this.itemCopy=itemCopy;this.itemCut=itemCut;this.itemPaste=itemPaste;this.area=area;}public void actionPerformed(ActionEvent e){if(e.getSource()==itemCopy){area.copy();}else if(e.getSource()==itemCut){area.cut();}else if(e.getSource()==itemPaste){area.paste();}}}class buttonListen implements ActionListener{ JTextArea area;JRadioButton r1,r2;public void setArea(JTextArea area,JRadioButton r1,JRadioButton r2){this.area=area;this.r1=r1;this.r2=r2;}public void actionPerformed(ActionEvent e){ if(r1.isSelected()){area.setText("班级是:"+r1.getText());}if(r2.isSelected()){area.setText("班级是:"+r2.getText());}}}实例3:(选择框)import javax.swing.*;import java.awt.*;import java.awt.event.*;public class MyFrame3 extends JFrame{JTextArea area;JMenuBar bar;JMenu menu;JMenuItem itemCopy,itemCut,itemPaste;menuListen2 listen =new menuListen2();buttonListen1 lis=new buttonListen1();JRadioButton r1,r2;JButton button;JCheckBox box1,box2,box3,box4;MyFrame3(){init();setBounds(100,100,400,400);setVisible(true);setDefaultCloseOperation(EXIT_ON_CLOSE);}public void init(){setLayout(new FlowLayout());area=new JTextArea(5,20);add(area);bar=new JMenuBar();setJMenuBar(bar);menu=new JMenu("编辑");bar.add(menu);itemCopy=new JMenuItem("复制");itemCut=new JMenuItem("剪切");itemPaste=new JMenuItem("粘贴");menu.add(itemCopy);menu.add(itemCut);menu.add(itemPaste);itemCopy.addActionListener(listen);itemCut.addActionListener(listen);itemPaste.addActionListener(listen);listen.setItem(itemCopy, itemCut, itemPaste, area);add(new Label("班级:"));r1=new JRadioButton("信息管理1班",true);r2=new JRadioButton("信息管理2班");ButtonGroup group=new ButtonGroup();group.add(r1);group.add(r2);add(r1);add(r2);add(new Label("爱好:"));box1=new JCheckBox("唱歌");box2=new JCheckBox("跳舞");box3=new JCheckBox("玩游戏");box4=new JCheckBox("看书");add(box1);add(box2);add(box3);add(box4);button=new JButton("确定");add(button);button.addActionListener(lis);}public static void main(String[] args) {MyFrame3 win=new MyFrame3();}class buttonListen1 implements ActionListener{ public void actionPerformed(ActionEvent e){if(r1.isSelected()){area.setText("班级是:"+r1.getText());}if(r2.isSelected()){area.setText("班级是:"+r2.getText());}area.append("\n爱好:");if(box1.isSelected())area.append(box1.getText());if(box2.isSelected())area.append(box2.getText());if(box3.isSelected())area.append(box3.getText());if(box4.isSelected())area.append(box4.getText());}}}class menuListen2 implements ActionListener{ JMenuItem itemCopy,itemCut,itemPaste;JTextArea area;public void setItem(JMenuItem itemCopy,JMenuItem itemCut,JMenuItem itemPaste,JTextArea area){ this.itemCopy=itemCopy;this.itemCut=itemCut;this.itemPaste=itemPaste;this.area=area;}public void actionPerformed(ActionEvent e){ if(e.getSource()==itemCopy){area.copy();}else if(e.getSource()==itemCut){area.cut();}else if(e.getSource()==itemPaste){area.paste();}}}实例4:布局import javax.swing.*;import java.awt.*;import static java.awt.BorderLayout.*;public class MyFrame4JButton a,b,c,d,e;public MyFrame4(){init();setBounds(100,100,400,400);setVisible(true);setDefaultCloseOperation(EXIT_ON_CLOSE);}public void init(){/* setLayout(new BorderLayout());a=new JButton("aaaaa");b=new JButton("bbbbb");c=new JButton("ccccc");d=new JButton("ddddd");e=new JButton("eeeee");add(a,"East");add(b,"West");add(c,"North");add(d,"South");add(e,"Center");*//* setLayout(new FlowLayout());a=new JButton("aaaaa");b=new JButton("bbbbb");c=new JButton("ccccc");d=new JButton("ddddd");e=new JButton("eeeee");add(a);add(b);add(c);add(d);add(e);*//* setLayout(new GridLayout(3,2));a=new JButton("aaaaa");b=new JButton("bbbbb");c=new JButton("ccccc");d=new JButton("ddddd");e=new JButton("eeeee");add(a);add(b);add(c);add(d);add(e);*/JPanel panel=new JPanel(new GridLayout(2,1));a=new JButton("aaaaa");b=new JButton("bbbbb");c=new JButton("ccccc");d=new JButton("ddddd");e=new JButton("eeeee");add(panel);panel.add(a);JPanel p1=new JPanel(new GridLayout(1,2));panel.add(p1);p1.add(b);JPanel p2=new JPanel(new GridLayout(3,1));p1.add(p2);p2.add(c);p2.add(d);p2.add(e);}public static void main(String[] args) {MyFrame4 win=new MyFrame4();}}实例5:布局import javax.swing.*;import java.awt.*;import java.awt.event.*;public class MyFrame5 extends JFrame{JTextArea area;JMenuBar bar;JMenu menu;JMenuItem itemCopy,itemCut,itemPaste;menuListen3 listen =new menuListen3();buttonListen1 lis=new buttonListen1();JRadioButton r1,r2;JButton button;JCheckBox box1,box2,box3,box4;MyFrame5(){init();setBounds(100,100,400,400);setVisible(true);setDefaultCloseOperation(EXIT_ON_CLOSE);}public void init(){JPanel panel=new JPanel(new GridLayout(2,1));add(panel);area=new JTextArea(5,20);panel.add(area);bar=new JMenuBar();setJMenuBar(bar);menu=new JMenu("编辑");bar.add(menu);itemCopy=new JMenuItem("复制");itemCut=new JMenuItem("剪切");itemPaste=new JMenuItem("粘贴");menu.add(itemCopy);menu.add(itemCut);menu.add(itemPaste);itemCopy.addActionListener(listen);itemCut.addActionListener(listen);itemPaste.addActionListener(listen);listen.setItem(itemCopy, itemCut, itemPaste, area);JPanel pan=new JPanel(new GridLayout(3,1));panel.add(pan);JPanel p1=new JPanel(new GridLayout(1,3));pan.add(p1);p1.add(new Label("班级:"));r1=new JRadioButton("信息管理1班",true);r2=new JRadioButton("信息管理2班");ButtonGroup group=new ButtonGroup();group.add(r1);group.add(r2);p1.add(r1);p1.add(r2);JPanel p2=new JPanel(new GridLayout(1,5));pan.add(p2);box1=new JCheckBox("唱歌");box2=new JCheckBox("跳舞");box3=new JCheckBox("玩游戏");box4=new JCheckBox("看书");p2.add(new Label("爱好:"));p2.add(box1);p2.add(box2);p2.add(box3);p2.add(box4);button=new JButton("确定");button.addActionListener(lis);JPanel p3=new JPanel(new FlowLayout());p3.add(button);pan.add(p3);}public static void main(String[] args) {MyFrame5 win=new MyFrame5();}class buttonListen1 implements ActionListener{ public void actionPerformed(ActionEvent e){if(r1.isSelected()){area.setText("班级是:"+r1.getText());}if(r2.isSelected()){area.setText("班级是:"+r2.getText());}area.append("\n爱好:");if(box1.isSelected())area.append(box1.getText());if(box2.isSelected())area.append(box2.getText());if(box3.isSelected())area.append(box3.getText());if(box4.isSelected())area.append(box4.getText());}}}class menuListen3 implements ActionListener{ JMenuItem itemCopy,itemCut,itemPaste;JTextArea area;public void setItem(JMenuItem itemCopy,JMenuItem itemCut,JMenuItem itemPaste,JTextArea area){ this.itemCopy=itemCopy;this.itemCut=itemCut;this.itemPaste=itemPaste;this.area=area;}public void actionPerformed(ActionEvent e){ if(e.getSource()==itemCopy){area.copy();}else if(e.getSource()==itemCut){area.cut();}else if(e.getSource()==itemPaste){area.paste();}}}。

Java_11 Swing图形界面设计

Java_11 Swing图形界面设计
⚫ 构建一个顶层容器;通常是JFrame或JApplet ⚫ 构建若干个组件,组件可以是其它容器; ⚫ 设定容器的布局管理器;用容器的add方法将这些组件加入到这个
容器中; ⚫ 设置组件事件;并将组件事件与代码关联。
17
第九章 Swing图形用户界面
◼ 9.1 概述 ◼ 9.2 容器组件 ◼ 9.3 基本组件 ◼ 9.4 布局管理器 ◼ 9.5 事件处理模型 ◼ 9.6 本章小结
JMenuItem
JMenu
JOptionPane
JPopupMenu JTextComponent JMenuBar
JTextArea JTextField
JPasswordField
JScrollPane
JLabel
JPanel
9
9.1 概述
◼ Swing的组件和容器层次
⚫ JComponent类是除了顶层容器以外所有Swing组件的基类,根据 继承关系,我们可以在每个基类中找到大多数GUI组件的常见操作
⚫ 定义了两种类型的组件: ➢ 顶层容器(JFrame,JApplet,JDialog和 JWindow)
➢ 轻量级组件(JComponent) ⚫ Swing组件都是AWT的Container类的直接子类和间接
子类。
⚫ Swing组件以"J"开头,除了有与AWT类似的按钮 (JButton)、标签(JLabel)、复选框(JCheckBox)、 菜单(JMenu)等基本组件外,还增加了一个丰富的高 层组件集合,如表格(JTable)、树(JTree)。
容器,别的组件都必须放在这个顶层容器上才能显现出 来。
12
9.1 概述-- Swing的组件和容器层次

Swing图形界面设计

Swing图形界面设计

//创建顶层容器并添加内容 创建顶层容器并添加内容. 创建顶层容器并添加内容
JFrame frame = new JFrame("SwingApplication"); SwingApplication app = new SwingApplication(); Component contents = app.createComponents(); frame.getContentPane().add(contents, BorderLayout.CENTER);
16有关swing的包javaxswingswing组件和使用工具javaxswingborderswing轻量组件的边框javaxswingcolorchooserjcolorchooser的支持类接口javaxswingevent事件和监听器类javaxswingfilechooserjfilechooser的支持类接口javaxswingplaf抽象类定义ui代表的行为javaxswingplafbasic实现所有标准界面样式公共功能的基类javaxswingplafmetal用户界面代表类它们实现metal界面样式javaxswingplafmulti多路外观的复合组件17有关swing的包javaxswingtablejtable组件javaxswingtext支持文档的显示和编辑javaxswingtexthtml支持显示和编辑html文档javaxswingtexthtmlparserhtml文档的分析器javaxswingtextrtf支持显示和编辑rtf文件javaxswingtreejtree组件的支持类javaxswingundo支持取消操作18javaxswingswing包是swing提供的最大包它包含将近100个类和25个接口几乎所有的swing组件都swingtable和swingtext中
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 2. 3. 4. JFrame用来创建application,最常用的 JApplet用来创建applet JDialog用来创建对话框,常用 JWindow不常用
11
中间容器
1. JPanel , JScrollPane , JSplitPane , JTabbedPane 、JInternalFrame、Box 这些容器提供将有关组件按照某种布局组合在 一起,然后放入中间容器或顶层容器的功能 JPanel提供一个面板 JScrollPane是具有滚动条的窗格 JSplitPane是具有拆分功能的窗格 JTabbedPane是带有若干标签的分类窗格 JInternalFrame用于创建内嵌于JFrame中的内 部框架 Box提供创建横向/纵向盒子容器的功能
界面设计
张蕾 zhanglei@
1
主要内容
一.概述
二.用户界面
三.组件介绍
四.布局管理
五.事件处理
六.菜单和表格
2
本章基本要求


了解AWT和Swing
熟悉4个顶层容器 掌握JFrame 熟悉常用的中间容器 会对组件进行布局


熟悉常用基本组件的创建和操作
二.Swing
1. 2. 3. Swing是对AWT的扩展,它是Java 2中的一个标准包 组件都以J开头,例如:JFrame、JButton等。swing界 面在不同的平台上外观完全一样,真正做到平台独立 import javax.swing.*;
6
界面设计中常用组件类的体系结构
ng.Object ponent java.awt.Container java.awt.Panel java.applet.Applet java.awt.Window java.awt.Dialog javax.swing.JComponent java.awt.Frame
Swing组件
JApplet
JDialog
JWindow
JFrame
7
用户界面
8
Java程序界面的构成
1. 3. 4. 5.
顶层容器包含若干个中间容器
每个中间容器包含若干个基本组件 按照合理的布局方式将它们组织在一起 基本组件可响应发生在其上的事件
9
顶层容器
一.容器
13
创建用户主窗口--JFrame
一.类 JFrame 是java.awt.Frame的子类
二.在Swing的组件中, JFrame 并不全是由Java编写的
1. 是一种与平台关系比较密切的组件(Heavyweight component)
ng.Object | +ponent | +--java.awt.Container | +--java.awt.Window | +--java.awt.Frame | +--javax.swing.JFrame
组件继承它的父容器的性质
4
Menu Text Box
Label
Combo Box List Box
Frame Window
Check Box Radio Button
Button
5
基本概述
一.AWT
1. 2. 3. AWT(Abstract Window Toolkit)是在Swing出现之前 用来设计界面的工具包 用awt包中的类创建的用户界面在不同的操作平台上有 不同的表现。使用不灵活 import java.awt.*;
12
1. 2. 3. 4. 5. 6.
基本组件
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. JLabel JButton、JCheckBox、JRadioButton JList、JComboBox JTextField、JPasswordField、JTextArea JToolBar、JToolTip、JProgressBar JSlider、JSpinner JFileChooser、JColorChooser JMenuBar、JMenu、JMenuItem、JCheckBoxMenuItem 、JRadioButtonMenuItem、JPopupMenu JTable JTree JOptionPane、JSeparator
14
创建用户主窗口--JFrame
1. 构造方法
JFrame() 创建无标题窗口。 JFrame(String s) 创建标题名字是字符串s的窗口。
例如:JFrame f = new JFrame(“Hello”);
2.
常用方法
setTitle(String title) 设置JFrame标题文本 get/ setSize():获取/设置JFrame的大小。 add(Object a):将组件添加到JFrame中。 dispose()关闭JFrame并回收用于创建窗口的任何资源。 setVisible(boolean b)设置JFrame的可见性。 setLocation(x,y) 设置JFrame在屏幕的位置
15
创建用户主窗口--JFrame
一.常用方法
void setExtendedState(int); //设置扩展的状态,取值: NORMAL ICONIFIED MAXIMIZED_HORIZ MAXIMIZED_VERT MAXIMIZED_BOTH //最大化 void setDefaultCloseOperation(int); //设置默认的关闭时的操作,取值: DO_NOTHING_ON_CLOSE HIDE_ON_CLOSE DISPOSE_ON_CLOSE EXIT_ON_CLOSE //关闭
会设置组件的颜色和字体 会处理组件上发生的事件 会创建菜单和表格
3
用户界面概述
一.用户界面的类型
字符用户界面(CUI):例如,MS-DOS 图形用户界面(GUI):例如,Microsoft Windows
二.GUI的组件
组件 基本的控制组件,例如:Button、Label等。
容器:能容纳和排列组件的组件
容器是用来容纳和管理一组界面元素的对象。基本 组件必须被安排在某个容器中,否则就无法使用。
有边框容器 无边框容器
Container
JWindow
JPanel
JDialog
JFrame
JApplet
10
顶层容器
1. JFrame , JApplet , JDialog , JWindow
作用:创建初始界面,为其他组件提供一 个容器,以构建满足用户需求的操作界面
相关文档
最新文档