Java Swing-图形化界面-菜单组件

合集下载

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

JavaSwing界面设计(所有控件及示例)
JFrame用来创建application,最常用的 JApplet用来创建applet JDialog用来创建对话框,常用 JWindow不常用
中间容器
JPanel , JScrollPane , JSplitPane , JTabbedPane、JInternalFrame、Box 这些容器提供将有关组件按照某种布局组合在一起,然后放入中间容器或顶层容器的功能
要可能会用到容器的嵌套 将中间容器按照某种布局添加到顶层容器中,形成满
足用户需求的操作界面
获得JFrame的容器并添加组件
Container con = getContentPane(); JPanel pautt = new JButton("Press Me"); panel.add(butt); con.add(panel);
示例:学生信息管理系统
学生基本信息录入界面的设计
设计一个用户界面,用于输入学生的下列信息:
姓名 JTextField
密码 JPasswordField
性别 JRadioButton 党否 JCheckBox
年龄 JSpinner
颜色 JColorChooser
加分 JSlider
系别 JComboBox
Check Box Radio Button
Button
基本概述
AWT ➢AWT(Abstract Window Toolkit)是在Swing出现之前用来设计
界面的工具包 ➢ 用awt包中的类创建的用户界面在不同的操作平台上有不同的
表现。使用不灵活 ➢import java.awt.*;
Swing ➢Swing是对AWT的扩展,它是Java 2中的一个标准包 组件都以J开头,例如:JFrame、JButton等。swing界面在不同

java基于Swing的图形界面PPT课件

java基于Swing的图形界面PPT课件

2.JFrame(String s) 该构造方法可以创建一个标题为s的窗口。
3.public void setBounds(int a,int b,int width,int height) 窗口调用该方 法可以设置出现在屏幕上时的初始位置是(a,b),即距屏幕左面a个像素、距屏幕 上方b个像素;窗口的宽是width,高是height。
含有一个称为内容面板的容器,应当把组件添加到内容面板中,调用 getContentPane()获得该面板容器 3.Jframe的内部结构可以理解为:
JMnuBar
ContentPane JFame窗体的基本结构
5
JFrame的常用方法
授课:XXX 2021/3/9
1.JFrame() 该构造方法可以创建一个无标题的窗口。
public void setJMenuBar(JMenuBar menubar); 需要注意的是,只能向窗口添加一个菜单条。 (2)JMenu 菜单 (3) JMenuItem 菜单项
7
10.3 菜单组件
授课:XXX 2021/3/9
JMenu类的主要方法有以下几种:
1.JMenu(String s) 建立一个指定标题菜单,标题由参数 s确定。
JComponent
Component Container
Window
Frame
DialogΒιβλιοθήκη JFrameJDialog
JComponent类的部分子类以及JFrame类和JDialog类
3
容器的概念
授课:XXX 2021/3/9
Java把由Container的子类或间接子类创建的对象称为一个 容器。
JAVA图形用户界面库分为: 1.AWT(java.awt).跨平台的, 功能完善的,基于桥梁模式的架构(同位体);

图形用户界面设计Swing常用组件.ppt

图形用户界面设计Swing常用组件.ppt

JScrollPane scrollPane = new JScrollPane(textArea);
2020年1月25日星期六
NCEPU
Swing的常用组件--JTextArea
文本区的三 种显示方式
2020年1月25日星期六
NCEPU
Swing的常用组件--JTextArea
例:创建包含文本区、文本框和“提交”按钮的窗口。 在文本区中输入文字,单击“提交”按钮,文本 框中会出现同样的文字。
}
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); }
public class TFPassword { public static void main(String[] args) { new TFFrame2(); }
}
class TF密Fram码e2域exJtePnadsssJFwraomredField

No5.Java_Swing图形界面2

No5.Java_Swing图形界面2

功能说明
显示确认对话框,等待用户确认(OK/Cancle) 显示输入对话框,等待用户输入信息。以字符串形式返回用户输入的信息 显示消息对话框,等待用户点击OK 显示选择对话框,等待用户在一组选项中选择。将用户选择的选项下标值返回
-17-
消息对话框
通常,将一个ActionListener加入到一个菜单项对象中,以 提供菜单的行为。
-11-
复选菜单项
JCheckBoxMenuItem mi5 = new JCheckBoxMenuItem(“Persistent”);
JCheckBoxMenuItem mi6 = new JCheckBoxMenuItem(“ReadOnly");
-5-
菜单系统
类MenuBar
菜单容器 类Menu 类MenuItem
菜单系统 一般菜单 可撕下菜单 帮助菜单
选项#1
选项#2
菜单中的菜单
选项#3 选项#4
选项#1 选项#2
第三层菜单
选项#3
选项#1 选项#2
非菜单容器
MenuAndPopup.java
-6-
菜单栏
• JMenuBar类用于创建一个菜单栏对象,该组件显 示一个顶级菜单选项列表,每个选项都连接着下 拉菜单。菜单栏是一个可以添加到任何位置的组 件,在正常情况下,显示在框架的顶部。
• 例:ToolBarDemo.java
-16-
标准对话框
• GUI中包含了一组标准的对话框,用于显示消息或获取信息。 • 标准对话框包含在JOptionPane组件中。 • JOptionPane类中提供了四中用于显示不同对话框的静态方法:
方法名
showConfirmDialog showInputDialog showMessageDialog showOptionDialog

JavaSwing图形界面开发(常用组件)

JavaSwing图形界面开发(常用组件)
28
按钮组件综合应用程序运行结果:
图4.10 按钮组件综合应用
29
4.3 本章小结
1、在顶层窗口中添加标签 将标签控件添加到顶层窗口的内容面板上即可。 标签上的文字,可使用“构造器”和“setText()”两种方法来创建。
2、普通按钮控件的添加 将按钮控件添加到顶层窗口的内容面板上即可。 按钮上的文字,可使用构造器创建。
16
4.2.2 如何使用单选按钮 即RadioButton,通过“JRadioButton类” 实现。 如:诸多管理软件中出现的“性别”单选按钮 。
图4.5 单选按钮示例图
要使用单选按钮,同样首先必须创建,然后再使用其 内置的方法来操纵组件。
17
表4.5 单选按钮的构造器
常用方法:与普通按钮类似。
2
4.1 如何使用标签
使用标签组件之前,首先必须要创建“标签组件对象”, 然后才能通过使用这个这个“对象中内置的方法”来操作。
一般而言,组件均通过自身的“构造器”来创建。
3
表4.1 常用的Label构造器
4
表4.2 Label常用内置方法 通过构造器创建Label组件后,即可通过组件内置的方
法来操纵这个组件。
5
使用标签示例程序1---在顶层容器中添加两个标签组件
(使用标签对象初始化方法,为Label赋初始值)
6
程序运行结果:
图4.1 使用对象初始化的方式赋值
7
使用标签示例程序2---在顶层容器中添加两个标签组件
(内置setText()方法赋值)
8
程序运行结果:
图4.2 使用标签内置方法赋值
9
4.2 如何使用按钮
18
单选按钮程序示例:

列表组件

列表组件
FileReader inOne =new FileReader(readFile); BufferedReader inTwo=new BufferedReader(inOne); String s=null; int i=0; while((s=inTwo.readLine())!=null)
showText.append("\n"+s); inOne.close(); inTwo.close(); } catch(IOException ex) { showText.setText(ex.toString()); } } } 运行结果:
10.9 列表组件
2020年1月6日 10:28
下拉列表是用户十分熟悉的一个组件。 用户可以在下拉列表看到第一个选项和它旁边的箭头按钮,当用户单击 箭头按钮时, 选项列表打开。
1.下拉列表常用方法 public JComboBox() 使用该构造方法创建一个没有选项 下拉列表。 public void addItem(ObjectanObject) 下拉列表调用该 方法增加选项。 public intgetSelectedIndex() 下拉列表调用该方法可 以返回当前下拉列表中被选 中的选项的索引,索引的起始 值是0。 public Object getSelectedItem() 下拉列表调用该方法 可以返回当前下拉列表中被 选中的选项。 public void removeItemAt(intanIndex) 下拉列表调用 该方法可以从下拉列表的选 项中删除索引值是anIndex选 项。 public void removeAllItems() 下拉列表调用该方法可 以删除全部选项。 public void addItemListener(ItemListener) 下拉列表 调用该方法可以向下拉列 表增加ItemEvent事件的监视器

java中 基于Swing的图形用户界面设计

java中 基于Swing的图形用户界面设计
类,因此所有的轻组件也都是容器。 而 JFrame 、 JApplet 、 JDialog 都 是 重 组 件 , 即 有 同 位 体 的 组 件 , 这 样 窗 口 (JFrame)、对话框(JDialog)、小应用程序(Java Applet)可以和操作系统交互 信息。轻组件必须在这些容器中绘制自己,习惯上称这些容器为SWING的底层容器。
2013-8-5 12
例子10-3 运行效果图10.4

2013-8-5
13
2.BorderLayout布局
BorderLayout布局是Window容器的默认布局。 JFrame、JDialog都是Window类的间接子类,它们的内容面板 的默认布局都是BorderLayout布局。 如果一个容器使用这种布局,那么容器空间简单地划分为东、 西、南、北、中五个区域。每加入一个组件都应该指明把这个组 件添加在哪个区域中,区域由BorderLayout中的静态常量CENTER、 NORTH、SOUTH、WEST、EAST表示。例如, 一个使用BorderLayout布局的容器con,可以使用add()方法将一个组 件b添加到中心区域:
public void setPreferredSize(Dimension preferredSize) 设置大小,例如:button.setPreferredSize(new Dimension(20,20));
注:对于添加到使用FlowLayout布局的容器中的组件,组件调用setSize(int x,int y)设置的大小无效。 例10-3中,JFrame使用FlowLayout布局放置10个组件(效果如图10.4所示)。
2013-8-5 4
10.2 JFrame窗体
javax.swing包中的JFrame类是java.awt包中Frame类的子类,因此 JFrame类其子类创建的对象是窗体。 当应用程序需要一个窗口时,可使用JFrame或其子类创建一个对象。 窗口默认地被系统添加到显示器屏幕上,因此不允许将一个窗口添加到 另一个容器中。Frame类常用方法如下:

javaSwing图形化界面

javaSwing图形化界面

javaSwing图形化界⾯学过java的⼈应该对java的图形化界⾯很是反感,特别是接触java不久的⼈。

如果想和其他语⾔那样⽤⿏标拖拽,可以使⽤wondosbulider 插件。

但是⽤起来也不是那么⽅便。

当然对于不乐意写代码的⼈来说真是太幸福了。

然⽽⽤代码去实现java的图形化界⾯并⾮那么⿇烦。

总结起来就是~1.定义你需要使⽤的⾯板,按钮,⽂本,标签。

2.对这些实例化。

然后把按钮,⽂本,标签按照你想要的⽅法放到⾯板上。

3.把⾯板放在界⾯上。

如果界⾯简单的话,⾯板也是可以不使⽤的,⾯板可以⽅便管理⼀些按钮。

如何去简单的添加⼀些按钮那?定义⾯板按钮~实例化⾯板按钮~将按钮添加到⾯板上。

package Swing;import java.awt.FlowLayout;import java.awt.Frame;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;public class FrameDemo extends JFrame {private JPanel jp,jp1; //声明⾯板,⾯板功能:可添加按钮⽂本等,⽅便管理界⾯。

private JButton b1; //声明按钮private JButton b2,b3;public FrameDemo (){super("测试窗⼝");jp = new JPanel();b1 = new JButton("按钮1");b2 = new JButton("按钮2");//实例化 jp b1 b2jp.add(b1);jp.add(b2);this.add(jp); //按钮添加到⾯板,⾯板添加到界⾯。

this.setSize(300,200); //设定窗⼝宽度300,⾼度200this.setLocation(100,100); //设定窗⼝左上⾓坐标,窗⼝打开时的位置。

Java Swing图形用户界面

Java Swing图形用户界面


JTextField和JPasswordField用来接收键盘的输入 或输出显示信息,都只有一行区域。 JPasswordField中显示用户的输入,但隐藏字符。 在JTextField和JPasswordField中输入数据后按 Enter键会激发一个事件。 如果程序注册了相应的事件监听器,监听器负责 处理事件。
Java 程 序 设 计
基于Swing的GUI开发
浙江工业大学软件学院
主讲教师:赵小敏
zxm@
1
Swing概述
• Swing是Java Foundation Classes(JFC) 的 重要组成部分。JFC包括了开发GUI所需的组 件和服务,包含如下五部分: AWT Java 2D Accessibility Drag and Drop Swing


在键盘上的按键被按下或释放时,生成按键事件。 按键事件的事件监听器接口是KeyListener。 KeyListener接口的方法。 如果需要判断键盘上的特定键,KeyEvent类提 供了键盘上每个键的常量用来判断是否按下了特 定的键。
19
JTextArea

支持多行文本的操作
ng.Object -ponent --java.awt.Container ---javax.swing.JComponent ----javax.swing.text.JTextComponent -----javax.swing.JTextArea 构造方法如下: JTextArea() JTextArea(int rows, int columns) JTextArea(String text)
25
常用中间容器
1.面板(JPanel) 面板(JPanel)是一个轻量容器组件,用 法与Panel相同,用于容纳界面元素,以便 在布局管理器的设置下可容纳更多的组件, 实现容器的嵌套。Jpanel, JscrollPane, JsplitPane, JinteralFrame都属于常用的 中间容器,是轻量组件。Jpanel的缺省布 局管理器是FlowLayout。

Java Swing图形用户界面

Java Swing图形用户界面
insertString(int offset,String s,AttributeSet a);在位置offset处插入一个具有指
定属性的字符串s。
ห้องสมุดไป่ตู้
remove(int offset,int length); 从位置offset处移去文本框中一段指定长度的内容。 3.可以通过上述构造方法或JTextField的实例方法
setDocutment(PlainDocumnet d)改变文本框的文档类型。 可以扩展PlainDocumnet,重写父类PlainDocumnet 中的方法,得到符合要求
的子类。
§8. 4 密码框 使用JComponent的子类JPasswordField创建 密码框。 文本框的密码框是允许用户在密码框中输入 单行密码,密码框的默认回显字符是‘*’。 密码框常用方法: setEchoChar(char c):重新设置回显字符。 char[] getPassword():返回实际的密码。
4.嵌入子菜单
JMenu是JMenuItem的子类,因此菜单本身也是一个菜单项,当把一个菜单看作菜单 项添加到某个菜单中时,称这样的菜单为子菜单。 5.菜单上的图标:图标类Icon声明一个图标,然后使用其子类ImageIcon类创建一个 图标,如:Icon icon = new ImageIcon(“a.gif”);
§8. 3 文本框 使用JComponent的子类JTextField创建文本 框。 文本框的特点是允许用户在文本框中输入单 行文本。
§8.3.1
JTextField类的主要方法
JTextField() 创建文本框,文本框的长度为一个机器字符长。 JTextField(int x) 创建文本框,文本框的长度为x个机器字 符长。 TextField(String s ) 创建文本框,文本框的初始字符串为s。 public void setText(String s) 设置文本框中的文本为参数 s指定的文本。 public String getText() 获取文本框中的文本。 public void setEditable(boolean b) 指定文本框的可编辑 性。文本框默认为可编辑的。 setHorizontalAlignment(int alignment) 设置文本框中文本 的 对 齐 方 式 , 其 中 alignment 的 有 效 值 是 JTextField.LEFT 、 JTextField.CENTER、JTextField.RIGHT 。 public void addActionListener(ActionListener) 向文本框 增加动作监视器(将监视器注册到文本框)。 public void removeActionListener(ActionListener) 移 去 文本框上的动作监视器。

Swing 图形用户界面中常用的组件

Swing 图形用户界面中常用的组件

9.1.1JApplet由于所有的Swing GUI组件都应该包含在JApplet小程序中,且javax.Swing.JApplet是java.applet.Applet的子类,所以本章主要介绍javax.Swing的“J组件”,应用程序均以JApplet小程序为例。

JApplet的使用与Applet小程序相似,它们与HTML文件的配合没有什么差别,差别仅在默认布局策略与个别方法的使用上,这将在讲述到有关内容时加以讨论。

9.1.2 Swing中常用的包由于Swing功能相当强大且复杂,考虑到功能分解的原则,Java系统将Swing按不同功能分为表9.1所示的若干个包,它们分别针对于不同的组件及事件。

表9.1 Swing中常用的包包名说明javax.swing 最常用的包,包含了各种Swing组件的类javax.swing.border 包含与Swing组件外框有关的类javax.swing.colorchooser 针对Swing调色版组件(JColorChooser)设计的类javax.swing.event 处理由Swing组件产生的事件javax.swing.filechooser 包含针对Swing文件选择对话框(JFileChooser)所设计的类javax.swing.plaf 处理Swing组件外观的相关类javax.swing.table 针对Swing组件表格(JTable)所设计的类javax.swing.text包含与Swing文字组件相关的类javax.swing.text.htmljavax.swing.text.html.parserjavax.swing.text.rtfjavax.swing.tree 针对Swing树状元素(JTree)所设计的类javax.swing.undo 提供Swing文字组件的Redo与Undo功能表9.1 Swing中常用的包9.1.3常用组件的继承关系由于本章所述组件所使用的成员方法主要是继承其直接父类或更高层父类的成员方法,为了正确地使用这些组件,有必要了解每个组件的继承关系。

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); }

Swing组件-JPane,菜单栏,工具栏

Swing组件-JPane,菜单栏,工具栏

JDialog窗体 窗体 高级组件中的工具栏
工具栏的特点:允许随意拖动(默认)。如果要不允许随意 工具栏的特点:允许随意拖动(默认)。如果要不允许随意 )。 拖动,可以通过调用setFloatable(boolean b)方法将入 拖动,可以通过调用 ( ) 口参数设为false实现,设为 实现, 则表示允许随意拖动。 口参数设为 实现 设为true则表示允许随意拖动。 则表示允许随意拖动
在窗体中添加工具栏, 在窗体中添加工具栏,该窗体一定要采用默认的边界布局方 并且不能在边界布局的四周添加任何组件。 式,并且不能在边界布局的四周添加任何组件。
JDialog窗体 窗体 高级组件中的工具栏
JDialog窗体 窗体 高级组件中的工具栏
敲了代码,运行不出效果。 敲了代码,运行不出效果。
列表框组件JList 列表框组件
列表框( 列表框(JList)与下拉列表框的区 ) 别不仅表现在外观上, 别不仅表现在外观上,当激活下拉列 表框时,会出现下拉列表框中的内容, 表框时,会出现下拉列表框中的内容, 但列表框只是在窗体上占据固定的大 如果需要列表框具有滚动效果, 小,如果需要列表框具有滚动效果, 可以将列表框放入滚动面板中, 可以将列表框放入滚动面板中,此时 可利用Shift键或 键或Ctrl键进行多选。 键进行多选。 可利用 键或 键进行多选
列表框组件JList 列表框组件
Swing中使用 中使用Jlist类对象表示列表框,下面列举几个常用的 类对象表示列表框, 中使用 类对象表示列表框 构造方法: 构造方法:
列表框组件JList 列表框组件
列表框组件JList 列表框组件
JDialog窗体 窗体 高级组件中的菜单栏
敲了代码,运行不出效果。 敲了代码,运行不出效果。

网络程序设计java第08章Swing图形用户界面程序设计new

网络程序设计java第08章Swing图形用户界面程序设计new
• NORTH, SOUTH, EAST, WEST, CENTER
2020/12/23
28
示例
【例8-7】J_Border.java,边界布局管理器例程
2020/12/23
29
CardLayout
• CardLayout的布局方式有点象 “扑克牌” • 一个组件压在另一个组件的上面,所以每
次一般只能看到一个组件
• JComponent——大多数Swing组件类父类
2020/12/23
5
Swing 组件
• 组件和容器是Swing图形用户界面的组成部分: • 容器
– 各种组件必须放在容器 – 容器本身也是一种组件 – 分类
• 顶层容器(小应用程序、对话框和框架) • 一般容器(面板、滚动窗格、分裂窗格、选项卡窗格、工具条) • 其它容器
2020j/1a2/v23a.swing.event 包中,类42 名通常以单词Listener结尾
事件处理机制
• 事件处理步骤
① 程序加入java.awt.event包: import java.awt.event;
② 给所需的事件源对象注册事件监听器: 事件源对象.addXXXListener(XXXListener);
事件处理模型
• 事件:对鼠标、键盘和其他输入设备的各 种操作,一般称为事件。
• GUI是由事件(event)驱动的
– 当用户与GUI交互可以产生事件(events) – 一些常见的交互方式
• 移动鼠标 • 用鼠标点击按钮 • 在文本框中输入数据 • 关闭窗口等
2020/12/23
40
事件处理机制
面板(JPanel)
• 一种中间容器,在面板中添加组件,然后 再将面板添加到其他容器中。

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 图形用户界面-SWING组件18-Swing

java 图形用户界面-SWING组件18-Swing
… ImageIcon icon = new ImageIcon("Calv.gif"); JLabel calv_label = new JLabel(" 这 是 Calvin", icon, SwingConstants.LEFT); …
2010年12月25日 三峡大学理学院 雷国洪 16
6 文本组件
- 顶级容器 - 中间容器
2010年12月25日 三峡大学理学院 雷国洪 7
顶级容器
• JFrame:用于框架窗口的类,此窗口带有 :用于框架窗口的类, 边框、标题、 边框、标题、用于关闭和最小化窗口的图 标等。 标等。带 GUI 的应用程序通常至少使用 一个框架窗口。 一个框架窗口。 • JDialog:用于对话框的类。 :用于对话框的类。 • JApplet:用于使用 Swing 组件的 Java : Applet 的类。
int
2010年12月25日
三峡大学理学院 雷国洪
18
JTextArea
• JTextArea 组件用于接受来自用户的多行文本 • 它可实现可滚动界面 • JTextArea 组件可使用下列构造函数创建: 组件可使用下列构造函数创建: JTextArea() JTextArea(int rows, int cols) JTextArea(String text) … JLabel jl = new JLabel(“文本区”); 文本区” 文本区 JTextArea(String text, int rows, int cols) con.add(jl); JTextArea(Document doc) JTextArea ta = new JTextArea(5,10); con.add(ta); JTextArea(Document doc, String text, int rows, … int cols)

java图形用户界面实现菜单功能

java图形用户界面实现菜单功能

java图形⽤户界⾯实现菜单功能本⽂实例为⼤家分享了java图形⽤户界⾯实现菜单功能的具体代码,供⼤家参考,具体内容如下题⽬:编写⼀个图形⽤户界⾯,实现菜单的功能。

有3个⼀级菜单项:File、Edit和Help。

在File菜单项中,有3个⼆级菜单项:New、Open和Save。

在Edit菜单项中,有3个⼆级菜单项:Copy、Cut和Paste。

在Help菜单项中,有⼀个⼆级菜单项About。

对于每⼀个⼆级菜单项,不必真正实现其功能,只要演⽰它能响应⿏标单击事件即可,如弹出⼀个对话框或打印⼀句话。

import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;public class MenuDemo extends JFrame implements ActionListener{public static void main(String[] args){MenuDemo demo = new MenuDemo();demo.go();}public void go(){this.setTitle("图形⽤户界⾯");this.setBounds(600, 150, 500, 150);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setLocationRelativeTo(null);//创建菜单JMenuBar jmb = new JMenuBar();//不能设定位置,会⾃动放在最上部this.setJMenuBar(jmb);//添加菜单JMenu menu1 = new JMenu("File");JMenu menu2 = new JMenu("Edit");JMenu menu3 = new JMenu("Help");JMenuItem item1 = new JMenuItem("New");JMenuItem item2 = new JMenuItem("Open");JMenuItem item3 = new JMenuItem("Save");JMenuItem item4 = new JMenuItem("Copy");JMenuItem item5 = new JMenuItem("Cut");JMenuItem item6 = new JMenuItem("Paste");JMenuItem item7 = new JMenuItem("About");//添加菜单项⾄菜单上menu1.add(item1);menu1.add(item2);menu1.add(item3);menu2.add(item4);menu2.add(item5);menu2.add(item6);menu3.add(item7);//将菜单加⼊⾄菜单条jmb.add(menu1);jmb.add(menu2);jmb.add(menu3);item1.addActionListener(this);item2.addActionListener(this);item3.addActionListener(this);item4.addActionListener(this);item5.addActionListener(this);item6.addActionListener(this);item7.addActionListener(this);}public void actionPerformed(ActionEvent e){String str = e.getActionCommand();if("New".equals(str)) {System.out.println("New正在被点击");}else if("Open".equals(str)){System.out.println("Open正在被点击");}else if("Save".equals(str)){System.out.println("Save正在被点击");}else if("Copy".equals(str)){System.out.println("Copy正在被点击");}else if("Cut".equals(str)){System.out.println("Cut正在被点击");}else if("Paste".equals(str)){System.out.println("Paste正在被点击");}else{System.out.println("About正在被点击");}}}运⾏效果:以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

Java的图形界面程序组合框、列表框、菜单

Java的图形界面程序组合框、列表框、菜单

Java的图形界面程序组合框、列表框、菜单一、实验目的熟练地掌握Java的图形界面程序组合框、列表框、菜单的编程。

通过实验掌握编写程序的思想方法,体会编程的技巧,加深Java语言的应用能力。

二、实验环境硬件环境:微型计算机。

软件环境:Windows 2000或以上版本,JKD, Jcreator三、实验内容与要求用Java语言编程实现以下问题:1、界面如word图,当选择相应的属相与血型时,文本区会出现相应的内容(属相与血型的具体内容在文本文档中,可以复制到程序中,文字太多程序中可以用\n换行)import java.awt.*;import javax.swing.*;import java.awt.event.*;public class combox_test implements ActionListener{JFrame f;JPanel p1,p2;JLabel l1,l2;JButton b;JComboBox cb1,cb2;JTextArea t;public static void main(String args[]){combox_test c=new combox_test();c.go();}void go(){f=new JFrame("属相与血型");p1=new JPanel();p2=new JPanel();l1=new JLabel("选择属相");l2=new JLabel("选择血型");b=new JButton("确定");cb1=new JComboBox();cb2=new JComboBox();t=new JTextArea(20,20);JScrollPane jsp=new JScrollPane(t,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SC ROLLBAR_ALWAYS);String itemList1[]={"虎","牛"};for(int i=0;i<2;i++)cb1.addItem(itemList1[i]);String itemList2[]={"A型","AB型","O型","B型"};for(int i=0;i<4;i++)cb2.addItem(itemList2[i]);p1.add(l1);p1.add(cb1);p2.add(l2);p2.add(cb2);f.add(p1);f.add(p2);f.add(b);f.add(jsp);f.setLayout(new FlowLayout());p2.setLayout(new BoxLayout(p2,BoxLayout.Y_AXIS));p1.setLayout(new BoxLayout(p1,BoxLayout.Y_AXIS));f.setSize(500,500);f.setVisible(true);cb1.addActionListener(this);cb2.addActionListener(this);b.addActionListener(this);}public void actionPerformed(ActionEvent e){if(cb1.getSelectedItem()=="虎"&&cb2.getSelectedItem()=="A型"&&e.getSource()==b)t.setText(" 为人热情,但思想保守,做事不考虑后果,常使自己陷在逆境中,自叹怀才不遇。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

//菜单条、菜单、菜单项是窗口常用的组件,菜单放在菜单条里,菜单项放在菜单里/**JMenuBar菜单条
* JComponent类的子类JMenubar是负责创建菜单条的,即JMenuBar的一个实例就是一个菜单条。

* JFrame类有一个将菜单条放置到窗口中的方法:
* public void setJMenuBar(JMenuBar mmenubar);
* 该方法将菜单条添加到窗口的菜单条区域(注意:只能向窗口添加一个菜单条)*/
/**JMenu菜单
* JComponent的子类JMenu是负责创建菜单的,即JMenu的一个实例就是一个菜单。

* JMenu类的主要方法:
* JMenu(String s)-建立一个指定标题菜单,标题由参数s确定
*public void add(MenuItem item)----向菜单增加由参数item指定的菜单选择对象*public void add(String s)----向菜单增加指定的选项
*public JMenuItem getItem(int n)----得到指定索引处的菜单选项
*public int getItemCount()----得到菜单选项数目
*/
/**JMenuItem菜单项
* JMenuItem是JMenu的父类,该类负责创建菜单项的,即JMenuItem的一个实例就是一个菜单项。

菜单项放在菜单里。

* JMenuItem类的主要方法:
* JMenuItem(String s)----构造有标题的菜单项
* JMenuItem(String text,Icon icon)----构造有标题和图标的菜单项
* public void setEnabled(boolean b)----设置当前菜单项是否可被选择
* public String getLabel()----得到菜单项的名字
* public void setAccelerator(KeyStroke keyStroke)----为菜单项设置快捷键
* 注:为向该方法的参数传递一个KeyStroke对象,可以使用KeyStroke类的类方法public static Keystroke
* getKeyStroke(char keychar)返回一个KeyStroke对象;也可以使用KeyStroke类的类方法public static
* Keystroke getKeyStroke(int keyCode,int modifiers)返回一个Keystroke对象,其中参数KeyCode的
* 取值范围为KeyEvent.VK_A~KeyEvent.VK_Z,modifiers的取值如下:InputEvent.ALT_MASK,* InputEvent.CTRL_MASK,InputEvent.SHIFT_MASK
*/
/**嵌入子菜单
* JMenu是JMenuItem的子类,因此菜单项本身还可以是一个菜单,这样的菜单项称为子菜单。

为了使菜单项有一个图标,可以用图标
* 类Icon声明一个图标,然后使用其子类ImageIcon类创建一个图标,如:
* Icon icon=new ImageIcon("dog.gif")
*/JMenu
JMenu
10.3 菜单组件
2020年1月1日21:03
JMenu
JMenu
JMenuItem
例子10-2
import javax.swing.*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
public class Example10_2 {
public static void main(String args[]) {
FirstWindow win=new FirstWindow("一个简单的窗口");
}
}
class FirstWindow extends JFrame{
JMenuBar menubar;
JMenu menu;
JMenuItem item1,item2;
FirstWindow(String s){
setTitle(s);
setSize(160,170);
setLocation(120,120);
setVisible(true);
menubar=new JMenuBar();
menu=new JMenu("文件");//设置菜单名称
item1=new JMenuItem("打开",new ImageIcon("open.gif"));//设置菜单项名称
item2=new JMenuItem("保存",new ImageIcon("save.gif"));//设置菜单项名称
item1.setAccelerator(KeyStroke.getKeyStroke('0'));
item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
menu.add(item1);//菜单项添加到菜单
menu.addSeparator();
menu.add(item2);//菜单项添加到菜单
menubar.add(menu);//菜单添加到菜单条
setJMenuBar(menubar);
validate();
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}
运行结果:
运行结果:。

相关文档
最新文档