Java Swing中处理各组件事件的一般步骤

合集下载

JAVA事件处理机制

JAVA事件处理机制

14
使用事件监听器类
import java.awt.*; public class TestButton{ public static void main(String args[ ]) { Frame f = new Frame(“Test”); Button b = new Button(“Press Me!”); b.addActionListener(new ButtonHandler( )); f.add(b, “Center”); f.pack( ); f.setVisible(true) ; } }
12
事件监听器类的编写要点
事件监听器类应该包括以下两部分内容: 事件监听器类应该包括以下两部分内容: 1.在事件监听器类的声明中指定要实现的监听器接口名,如: 在事件监听器类的声明中指定要实现的监听器接口名, 在事件监听器类的声明中指定要实现的监听器接口名 public class MyListener implements XxxListener { … } 2.实现监听器接口中的事件处理方法,如: 实现监听器接口中的事件处理方法, 实现监听器接口中的事件处理方法 public void 事件处理方法名(XxxEvent e) { ...//处理某个事件的代码... } 然后,在一个或多个组件上可以进行监听器类的实例的注册。 然后,在一个或多个组件上可以进行监听器类的实例的注册。如: 组件对象.addXxxListener(MyListener对象);
5
事件处理机制的几个重要概念
注册事件监听器
为了能够让事件监听器检查某个组件(事件源) 是否发生了某些事件,并且在发生时激活事件 处理器进行相应的处理,必须在事件源上注册 事件监听器。这是通过使用事件源组件的以下 方法来完成的:

java swing焦点事件focusevent的transferfocus()方法

java swing焦点事件focusevent的transferfocus()方法

Java Swing中的FocusEvent和transferFocus()方法在Java Swing中,焦点事件(FocusEvent)是当用户在一个组件上点击或触摸,或者通过键盘导航选择该组件时发生的事件。

当一个组件获得焦点时,它可以接收键盘事件,如按键和快捷键。

当焦点从一个组件转移到另一个组件时,会触发FocusEvent。

FocusEvent类表示与焦点变化相关的事件。

它有两个子类,FocusAdapter和FocusListener。

FocusAdapter是一个实现了FocusListener接口的抽象类,它提供了所有FocusListener方法的默认实现,你可以通过覆盖感兴趣的方法来处理焦点事件。

FocusListener接口有两个方法:focusGained(FocusEvent e)和focusLost(FocusEvent e)。

当组件获得焦点时,会触发focusGained方法;当组件失去焦点时,会触发focusLost方法。

transferFocus()方法是Component类的一个方法,它用于将焦点从当前组件转移到另一个组件。

这个方法没有返回值,如果成功转移了焦点,它将返回true;否则,返回false。

下面是一个简单的示例,展示了如何使用FocusEvent和transferFocus()方法:在这个示例中,我们创建了一个包含两个文本字段的窗口。

我们为这两个文本字段添加了焦点监听器,并实现了FocusListener接口。

当文本字段获得或失去焦点时,我们在控制台中打印相应的消息。

当textField1失去焦点时,我们将焦点请求转移到textField2;当textField2失去焦点时,我们将焦点请求转移到textField1。

javaswing jlist组件的基本用法

javaswing jlist组件的基本用法

javaswing jlist组件的基本用法JList是JavaSwing库中的一个组件,它用于显示一个列表的数据。

在JavaSwing中,JList允许用户选择列表中的项目。

以下是如何使用JList组件的基本步骤:一、引入必要的库在开始使用JList之前,我们需要引入必要的库。

首先,需要引入JavaSwing库。

可以在项目中直接添加JavaSwing库,或者通过Maven等构建工具添加。

```javaimportjavax.swing.*;```二、创建JList对象创建一个JList对象,需要指定要显示的数据源。

数据源可以是数组、列表或其他集合。

```javaJList<String>list=newJList<>(newString[]{"Item1","Item2","Item3"});```三、设置列表样式可以使用多种方式来设置列表样式,例如背景颜色、字体等。

可以使用以下方法来设置列表样式:```javalist.setBackground(Color.WHITE);//设置背景颜色为白色list.setFont(newFont("Arial",Font.BOLD,14));//设置字体为粗体,大小为14```四、添加到容器中可以将JList对象添加到JFrame、JPanel等容器中,以便将其显示出来。

可以使用以下代码将JList对象添加到容器中:```javaJFrameframe=newJFrame("JListExample");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.add(newJScrollPane(list));//将JList对象添加到滚动面板中,以便查看大列表frame.pack();frame.setVisible(true);```五、使用addListSelectionListener监听器监听列表选择事件可以使用addListSelectionListener方法来监听列表选择事件。

JavaSwing中处理各组件事件的一般步骤完整版

JavaSwing中处理各组件事件的一般步骤完整版

J a v a S w i n g中处理各组件事件的一般步骤集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]Java Swing中处理各组件事件的一般步骤是:1.新建一个组件(如JButton)。

2.将该组件添加到相应的面板(如JPanel)。

3.注册监听器以监听事件源产生的事件(如通过ActionListener来响应用户点击按钮)。

4.定义处理事件的方法(如在ActionListener中的actionPerformed中定义相应方法)。

以上步骤我们可以用多种方法实现。

但人们通常用二种方法。

第一种方法是只利用一个监听器以及多个if语句来决定是哪个组件产生的事件;第二种方法是使用多个内部类来响应不同组件产生的各种事件,其具体实现又分两种方式,一种是匿名内部类,一种是一般内部类。

为了说明如何使用上述三种方法实现事件的处理方法,我们建立一个简单的应用程序。

该程序界面有两个按钮,当用户点击相应的按钮,就会弹出一个对话框显示相应的内容。

通过这个简单程序,你可以实现自己更多、更复杂的用户界面程序。

首先,我们利用单个监听器来实现该程序。

我们定义一个名为Simple1的类来包括所有代码。

所有的用户行为(如点击按钮)由一个监听器SimpleListenner中的actionPerformed方法来处理。

以下是代码:import .*;import .*;public class Simple1{private static JFrame frame;dd(myPanel);();(true);}}让我们来看看以上代码是如何工作的。

在main方法中,我们定义了一个JFrame,然后将面板Jpanel添加到窗体中,该面板包括两个按钮。

相应的变量Frame,button1,button2定义在程序的开头部分。

在程序入口main方法中,首先新建Simple1组件,通过构造器建立用户GUI,定义一个面板Jpanle,,增加两个按钮,然后利用将两个按钮加入到一个活动监听器SimpleLister中,最后,两个按钮添加到面板。

swing事件处理机制

swing事件处理机制

swing事件处理机制Swing事件处理机制Swing是Java中用于创建图形用户界面(GUI)的一套组件库。

在Swing中,事件处理机制起着至关重要的作用。

本文将介绍Swing 事件处理机制的基本原理和使用方法。

事件处理机制是指当用户与GUI界面交互时,系统会自动检测并处理用户触发的事件。

在Swing中,事件可以是鼠标点击、键盘输入、窗口关闭等用户行为。

事件处理机制的核心思想是“观察者模式”,即当事件发生时,会通知相应的事件监听器进行处理。

在Swing中,事件源(Event Source)是指能够触发事件的组件,如按钮、菜单等。

事件监听器(Event Listener)是实现了特定接口的类,用于监听特定类型的事件。

当事件源触发事件时,会调用相应的事件监听器的方法进行处理。

Swing事件处理机制的基本步骤如下:1. 创建事件源:首先需要创建一个能够触发事件的组件,如按钮。

2. 创建事件监听器:根据需要,创建一个事件监听器类并实现相应的接口,如ActionListener接口用于处理按钮点击事件。

3. 注册事件监听器:将事件监听器注册到事件源上,以便监听事件的发生。

4. 处理事件:当事件源触发事件时,系统会自动调用事件监听器的方法进行处理。

下面以一个简单的示例来说明Swing事件处理机制的使用方法。

假设我们需要创建一个界面,其中包含一个按钮,点击按钮后会弹出一个对话框显示一条消息。

我们需要创建一个JFrame对象作为界面的容器,并设置布局管理器和关闭操作。

然后,创建一个JButton对象作为按钮,并设置按钮的文本。

接下来,创建一个JOptionPane对象作为对话框,并设置对话框的消息。

然后,我们需要创建一个事件监听器类,实现ActionListener接口。

在事件监听器类中,需要实现actionPerformed方法,用于处理按钮点击事件。

在该方法中,我们调用JOptionPane的showMessageDialog方法,将对话框显示出来。

Swing简介

Swing简介

[编辑本段]简介Swing是一个用于开发Java应用程序用户界面的开发工具包。

它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。

Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。

工具包中所有的包都是以swing作为名称,例如javax.swing,javax.swing.event [编辑本段]创建图形界面步骤(1)导入Swing包(2)选择界面风格(3)设置顶层容器(4)设置按钮和标签(5)将组件放到容器上(6)为组件增加边框(7)处理事件(8)辅助技术支持导入Swing包下面语句导入Swing包import javax.swing.*;大部分Swing程序用到了AWT的基础底层结构和事件模型,因此需要导入两个包:import java.awt.*;import java.awt.event.*;如果图形界面中包括了事件处理,那么还需要导入事件处理包:import javax.swing.event.*;选择界面风格Swing允许选择程序的图形界面风格常用的有java风格,windows风格等下面的代码用于选择图形界面风格,这里选择的是跨平台的Java界面风格。

try { UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName( )); }catch (Exception e) { }设置顶层容器图形界面至少要有一个顶级Swing容器顶级Swing容器为其它Swing组件在屏幕上的绘制和处理事件提供支持常用的顶级容器:JFrame(框架):表示主程序窗口JDialog(对话框):每个JDialog对象表示一个对话框,对话框属于二级窗口JApplet(小程序):在浏览器内显示一个小程序界面一个框架包括边界、菜单栏、工具栏、状态栏,以及中间占主要部分的窗格窗格也可以看作是一种面板,但它是框架的一个组成部分组件不会直接放到框架上,而是放在若干个面板上,这些面板再放到窗格上用框架对象的getContentPane()函数来获得窗格,再调用窗格的add()函数放置面板public static void main(String[ ]args){JFrame frame=new JFrame("SwingAp plication");JPanel panel1=new JPanel();frame.getContentPane().add(panel1,BorderLayout.CENTER);......//添加其他组件frame.pack();frame.setVisible(true);}Swing全屏幕模式使用关键是java.awt.*里面的两个与显示设备有关的类:GraphicsEnvironment和Gr aphicsDevice。

Java第06章--1(AWT与Swing)

Java第06章--1(AWT与Swing)

• • 视图(view):它专门负责组件的绘制工作,主要涉及 paint()方法。MVC设计范式的最大优点是一个模型可以 有多个视图,每个视图是一个不同侧面但内容却是完整的。 • 一个模型的几个视图都是从不同侧面、用完整的内容来描 述同一个模型。当模型的控制器要修改其内容时,均会通 知这每个视图,它们都会自动地更新自己的视图显示。 • • 控制器(controller):专门负责管理和处理组件所接 收到的事件,这些事件可能来自用户的操作。如键盘输入、 鼠标点击和拖放等,也可能来自系统,如系统计时器发出 的事件。 • 视图和其控制器之间的通信不仅频繁且非常复杂,因此 JFC系统把两者封装成一个整体。
• • 模型(model):模型负责获取和管理组件的状态,用户若 需要询问组件的状态时,实际上是询问该组件的模型。 • 若要询问Swing型按钮组件(JButton 类的一个对象)的状 态,可调用JButton 类的父类javax.swing.AbstractButton所 提供的isSelected()方法,它定义为: – public boolean isSelected() { ... } – 该方法返回一个逻辑值,若为true则该按钮组件被压下,反 之返回false则按钮是松开状态。 • javax.swing包中的各种组件,对于描述该组件状态和内容的 模 型 都 是 用 以 Model 结 尾 的 接 口 实 现 , 例 如 , 对 于 按 钮 在 javax.swing包中有一个如下定义的接口: – public interface ButtonModel extends ItemSelectable { ... } • 每个JButton类的对象都保存着一个表示该按钮组件模型的对 象,调用其父类AbstractButton的方法就可以得到它,即: – JButton b = new JButton( "确定" );

使用Java Swing组件进行事件处理方法的分析与比较

使用Java Swing组件进行事件处理方法的分析与比较

使用Java Swing组件进行事件处理方法的分析与比较摘要:Swing组件是Java基本类库的一部分,是用于开发Java应用程序用户界面的开发工具包。

通过具体实例分析了多种使用Swing 组件进行事件处理的方法,并对这些方法进行了比较。

关键词:Java;Swing;监听;内部类;事件0引言Swing组件是Java语言中用来编写图形化界面的工具包,它使用灵活、功能强大,使得开发人员利用其提供的各种类与方法能够快速地创建出符合用户需求的各种美观、实用的图形界面。

Swing组件具有自动对各种用户的动作产生响应的功能,例如当某一用户点击button按钮或选择菜单栏时,该动作将会被监听处理。

在代码编写的过程中注册监听器是必须完成的工作,通过它对事件源进行监听,这样在程序中就可以十分方便地对用户行为进行响应处理。

1使用Swing组件进行事件处理过程使用Java Swing组件进行事件处理的过程分为如下几个步骤:首先,创建一个新的Swing组件(例如按钮或者菜单栏等);其次,将刚刚创建的组件添加到定义的面板中去;然后,通过注册监听器对事件源进行监听(例如对用户点击按钮或者点击鼠标的动作);最后,在程序中编写响应事件源产生事件的各种方法。

上述几个步骤的实现可以通过多种方法来完成。

第一种可使用的方法是通过注册单个监听器并使用多个if条件判断语句来决定响应的事件源;第二种方法使用Java语言中的匿名内部类来进行相关的事件处理过程;第三种方法是通过一般内部类来进行事件的响应。

第二种、第三种方法从本质上来说,都是在进行事件处理的过程中使用了多个Java的内部类,而不同之处在于具体实现有较大变化。

下面通过一个简单的Java 应用程序(创建两个按钮,当用户点击按钮后产生不同的显示结果)展示怎样通过以上3种方法来实现Swing组件的事件处理过程。

1.1单个监听器方式该方法使用单个监听器来进行实现。

具体完成该方法的过程为:建立一个名为Example的类,当用户点击button按钮后,监听器ExampleListenner会对该动作进行监听并交由actionPerformed()方法来进行相应的事件处理。

Swing事件大全

Swing事件大全

Swing中的事件处理监听器:ActionListener方法:actionPerformed事件:ActionEvent● String getActionCommand()actioncommand是控件内部的一个字符串,用于标识控件的状态。

此函数可以取得控件的状态,从而决定到底该做什么。

● int getModifiers()取得“产生此事件时,用户同时按下的组合键”● long getWhen()取得“产生此事件时的时间戳”事件产生原因:点击按钮,在列表框中选择内容,在文本框中点回车,计时器到期监听器:AdjustmentListener方法:adjustmentValueChanged事件:AdjustmentEvent● Adjustable getAdjustable()adjustable是一个接口,各种滚动条都实现了这个接口。

● int getAdjustmentType()取得滚动类型,共有UNIT_INCREMENT,UNIT_DECREMENT,BLOCK_INCREMENT,BLOCK_DECREMENT,TRACK共5种类型● int getValue()取得滚动滑块的当前值事件产生原因:滚动条的滚动监听器:ItemListener方法:itemStateChanged事件:ItemEvent● Objedt getItem()取得被选中的元素。

注意,返回值是Object,还应该进行强制类型转换。

● ItemSelectable getItemSelectable()ItemSelectable是一个接口,代表那些包含了n个可供选择的子元素的对象。

此方法返回产生此事件的对象。

此方法的作用主要在于,如果一个列表框是允许多选的,那么上面的方法就不好用了,应该用此方法得到列表对象,再取得被选中的多个元素。

● int getStateChange()取得选择的状态,是SELECTED还是DESELECTED事件产生原因:各种按钮的点击,列表框的选择监听器:FocusListener方法:focusGained、focusLost事件:FocusEvent● Component getOppositeComponent()得到“参与焦点变换的”另一个对象。

逐步掌握JavaSwingUI界面设计

逐步掌握JavaSwingUI界面设计

逐步掌握JavaSwingUI界面设计一、Swing界面设计概述Java Swing UI界面设计是Java语言中常用的图形用户界面(GUI)设计工具。

它提供了一系列的组件和容器,可以帮助开发人员创建出美观、交互性强的用户界面。

本文将介绍逐步掌握Java Swing UI界面设计的相关内容。

二、基础知识与组件1. Swing组件分类Java Swing UI界面设计中,可以使用多种不同类型的组件构建用户界面。

常用的Swing组件包括按钮、标签、文本框、下拉列表、菜单等。

这些组件可以通过布局管理器灵活地组合在一起,实现不同样式和功能的用户界面。

2. 布局管理器布局管理器是Java Swing UI界面设计中非常重要的一部分。

它负责决定组件在容器中的位置和大小。

Java Swing提供了多种布局管理器,如流式布局、边界布局、网格布局等。

开发人员可以根据具体需求选择适合的布局管理器,并结合组件的特性进行布局设计。

3. 事件处理在用户界面中,用户的交互行为会触发相应的事件,如点击按钮、选择菜单等。

Java Swing提供了事件模型和事件监听器机制,开发人员可以通过注册监听器来捕获和处理这些事件。

事件处理是Java Swing UI界面设计中的重要环节,可以实现用户交互的逻辑功能。

三、界面设计实例1. 登录界面设计以登录界面为例,介绍如何使用Java Swing进行界面设计。

首先,通过各种组件创建登录界面的基本元素,包括标签、文本框和按钮等。

然后,选择合适的布局管理器,将这些组件适当地放置在面板中。

接下来,通过事件监听器,实现登录按钮的点击事件,验证用户输入的用户名和密码是否正确,并进行相应的操作,如弹出提示框或跳转至其他界面。

2. 菜单设计菜单是用户界面中常见的功能区域,可以实现各种操作的选择和执行。

在Java Swing界面设计中,可以使用菜单条、菜单和菜单项等组件构建菜单。

通过设置相应的监听器,可以捕获菜单项的点击事件,并执行相应的功能操作。

Java面向对象程序设计案例教程课件:图形用户界面开发与事件处理

Java面向对象程序设计案例教程课件:图形用户界面开发与事件处理

《Java面向对象程序设计案例教程》
7.2 Swing基础
• Swing组件是Java语言提供的第二代GUI设计工 具包,它以AWT为基础,在AWT内容的基础上 新增或改进了一些GUI组件,使得GUI程序功能 更强大,设计更容易、更方便。
• Swing与AWT有以下不同。
• (1) Swing是完全用Java语言编写的,所以称 Swing组件是轻量级组件,没有本地代码,不依 赖操作系统的支持,比AWT构件具有更强的实 用性。Swing在不同的平台表现一致,并且有能 力提供本地窗口系统不支持的其他特性。
《Java面向对象程序设计案例教程》 • Swing的类层次结构如图所示:
《Java面向对象程序设计案例教程》
• 3. 简单的范例 • 一个简单的Swing GUI应用程序。该程序生成一个窗
口, • 窗口中有一个标签,用于显示输出。 • (1) 程序代码: • 1. import java.awt.* ; • 2. import javax.swing.* ; • 3. public class SwingDemo • 4. { • 5. public static void main(String args[]) • 6. { • 7. JFrame fm = new JFrame("第一个Windows程序") ; • 8. JLabel label = new JLabel("这是第一个GUI程序") ;
• 教材例题7-12 利用组合框显示、选取地名。
• 教材例题8.2 ,例题8.3用不同方法生成JFrame窗口
《Java面向对象程序设计案例教程》
• 7.3.2 面板容器JPanel
• 面板JPanel也是Java中常用到的容器之一,面板是一种透明 的容器,既没有标题,也没有边框,就像一块透明的玻璃。 与JFrame不同,它不能作为最外层的容器单独存在,它首 先必须作为一个构件放置到其他容器中,然后再把它作为容 器,把其他构件放到其中。

java_swing面试题目(3篇)

java_swing面试题目(3篇)

第1篇一、Java Swing基本概念1. 什么是Java Swing?答:Java Swing是一种用于创建图形用户界面的库,它是Java语言的一个扩展,允许开发者创建具有丰富视觉效果的桌面应用程序。

2. Swing的组件有哪些?答:Swing组件包括基本组件(如按钮、标签、文本框等)、容器组件(如面板、窗口、滚动条等)、特殊组件(如树、表格等)。

3. Swing与AWT的区别是什么?答:Swing是基于Java的,而AWT是基于本地平台的。

Swing组件在不同平台上表现一致,而AWT组件在不同平台上可能有所不同。

Swing运行速度较慢,但提供了更多功能和更好的用户体验。

二、Swing基本组件1. 如何创建一个按钮,并设置其文本和字体?答:使用JButton类创建按钮,并设置其文本和字体。

```javaJButton button = new JButton("按钮");button.setFont(new Font("宋体", Font.PLAIN, 12));```2. 如何获取并设置文本框中的文本?答:使用JTextField类创建文本框,并通过getText()和setText()方法获取和设置文本。

```javaJTextField textField = new JTextField();String text = textField.getText(); // 获取文本textField.setText("新文本"); // 设置文本```3. 如何使用单选按钮(JRadioButton)实现多选?答:使用JRadioButton类创建单选按钮,并使用ButtonGroup类将它们分组。

```javaJRadioButton radioButton1 = new JRadioButton("选项1");JRadioButton radioButton2 = new JRadioButton("选项2");ButtonGroup buttonGroup = new ButtonGroup();buttonGroup.add(radioButton1);buttonGroup.add(radioButton2);```4. 如何使用复选框(JCheckBox)实现多选?答:使用JCheckBox类创建复选框,它们之间互不影响。

各大公司Java笔试题

各大公司Java笔试题

华为Java笔试题+数据库题123123一、单项选择题1.Java是从()语言改进重新设计。

A.Ada B.C++ C.Pasacal D.BASIC 答案:B2.下列语句哪一个正确()A.Java程序经编译后会产生machine codeB.Java程序经编译后会产生byte codeC.Java程序经编译后会产生DLLD.以上都不正确答案:B3.下列说法正确的有()A.class中的constructor不可省略B.constructor必须与class同名,但方法不能与class同名C.constructor在一个对象被new时执行D.一个class只能定义一个constructor 答案:C4.提供Java存取数据库能力的包是()A.java.sql B.java.awt C.ng D.java.swing 答案:A 5.下列运算符合法的是()A.&& B.<> C.if D.:= 答案:A6.执行如下程序代码a=0;c=0;do{--c;a=a-1;}while(a>0);后,C的值是()A.0 B.1 C.-1 D.死循环答案:C7.下列哪一种叙述是正确的()A.abstract修饰符可修饰字段、方法和类B.抽象方法的body部分必须用一对大括号{ }包住C.声明抽象方法,大括号可有可无D.声明抽象方法不可写出大括号答案:D8.下列语句正确的是()A.形式参数可被视为local variableB.形式参数可被字段修饰符修饰C.形式参数为方法被调用时,真正被传递的参数D.形式参数不可以是对象答案:A9.下列哪种说法是正确的()A.实例方法可直接调用超类的实例方法B.实例方法可直接调用超类的类方法C.实例方法可直接调用其他类的实例方法D.实例方法可直接调用本类的类方法答案:D二、多项选择题1.Java程序的种类有()A.类(Class)B.Applet C.Application D.Servlet 2.下列说法正确的有()A.环境变量可在编译source code时指定B.在编译程序时,所能指定的环境变量不包括class pathC.javac一次可同时编译数个Java源文件D.javac.exe能指定编译结果要置于哪个目录(directory)答案:BCD3.下列标识符不合法的有()A.new B.$Usdollars C.1234 D.car.taxi 答案:ACD4.下列说法错误的有()A.数组是一种对象B.数组属于一种原生类C.int number=[]={31,23,33,43,35,63}D.数组的大小可以任意改变答案:BCD5.不能用来修饰interface的有()A.private B.public C.protected D.static 答案:ACD 6.下列正确的有()A.call by value不会改变实际参数的数值B.call by reference能改变实际参数的参考地址C.call by reference不能改变实际参数的参考地址D.call by reference能改变实际参数的内容答案:ACD7.下列说法错误的有()A.在类方法中可用this来调用本类的类方法B.在类方法中调用本类的类方法时可直接调用C.在类方法中只能调用本类中的类方法D.在类方法中绝对不能调用实例方法答案:ACD8.下列说法错误的有()A.Java面向对象语言容许单独的过程与函数存在B.Java面向对象语言容许单独的方法存在C.Java语言中的方法属于类中的成员(member)D.Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同答案:ABC9.下列说法错误的有()A.能被java.exe成功运行的java class文件必须有main()方法B.J2SDK就是Java APIC.Appletviewer.exe可利用jar选项运行.jar文件D.能被Appletviewer成功运行的java class文件必须有main()方法答案:BCD三、判断题1.Java程序中的起始类名称必须与存放该类的文件名相同。

Java桌面程序开发第5章-使用Swing常用组件

Java桌面程序开发第5章-使用Swing常用组件
教学要求 1.掌握:Swing各种常用组件的使用,包括图形用户界
面所需要的基本组件、选择型组件,菜单等的创建和使用 2.理解:工具栏的创建,对话框的创建和使用
5.1 GUI的基本元素:标签、按钮、文本框
1.JLabel
• JLabel类是一个用来显示文本的类,文本就是一个字符串。在程 序中指定要显示的字符串,但该字符串在运行时不能被用户修改
密码文本框是用来输入密码的文本框。
密码框继承单行文本框,所以密码框只显示单行输入框。 但是,与单行文本框不同的是,密码框输入的文字将不会 正常显示出来,而是使用其它字符代替。
可以通过调用setEchoChar(char c)来更改显示字符。密 码框的作用是防止别人看到所输入的文字信息。
JPasswordField的构造方法:
JCheckBox类继承JToggleButton类,而JToggleButton类 实现一个反选按键,只有按下和释放两种状态。复选框也 有类似功能,只有选择和不选择两种状态,而且复选框可 由多个按钮组成一个组群。
定义它们之间的间隔。 • int getHorizontalAlignment():返回标签内容沿 X 轴的对齐方式。 • int getVerticalAlignment() :返回标签内容沿 Y 轴的对齐方式。 • void setLabelFor(Component c):设置将标签添加到的组件。
区要换行)。
实例
例5-10 使用JTextArea
例5-11 从一个文本区复制选中的文字到另一个文本区
5.3 选择型组件
Java提供了很多的选择型组件,用户可通过单击选定,免 去了输入文本的麻烦。
常用的选项组件有单选框,复选框,列表框,组合列表框 等。

第5章 基于Swing的图形化用户界面_1布局管理器与事件处理 - 全

第5章 基于Swing的图形化用户界面_1布局管理器与事件处理  - 全
AWT ( 重量级组件)
通过 java.awt 包
创建 GUI
容器 组件 布局管理器
包含 AWT 容器组件
以图形表示的对象允许用户交互
AWT 包 含 内 容
定义 GUI 组件的位置
使用 AWT 图形方法相对于窗口绘制图形
图形和绘制方法
字体 事件
创建并构造用于选择新字体的对象 用于用户和系统交互
AWT类结构
框架JFrame


JFrame是放置其他Swing组件的顶级容器。
JFrame用于在Swing程序中创建顶层窗口。 默认情况下,框架的尺寸是没有实际意义的0X0像素。 为了设定合适的框架大小,要调用框架的setSize方法。

默认情况下,框架在创建时是不可见的。为了显示框架 ,要调用框架的setVisible方法。
AWTEvent Font Component ng.object Graphics MenuComponent 布局管理器类 Window Frame Container
Panel
Applet
Swing概述
通过 Swing (轻量级组件,纯Java组件) Javax.swing 包 创建 GUI

默认情况下,当用户关闭一个框架时,该框架会隐藏起
来,程序不会终止,调用setDefaultCloseOperation。
JFrame应用示例
创建具有以下特征的窗口: • 自定义窗口的标题; • 窗口的大小不可变(300,200); • 窗口居中显示。
标题
最大化按钮 失效
JFrame应用示例
import javax.swing.*; class App5_1 { public static void main(String[] args) { JFrame f=new JFrame("第一个Java窗口"); //创建容器 f.setSize(300,200); //设置容器大小 f.setLocationRelativeTo(null) ; //框架居中 f.setVisible(true); //设置框架可见性 f.setResizable(false); //设置不能改变框架大小 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }

Swing 编程

Swing 编程

Java之Swing编程理解什么是GUI/设计GUI基本界面/理解事件类和接口/学习使用部件按钮,标签,列表,文本框,面板/学会处理鼠标和键盘事件/使用基本的布局管理器。

GUI是由N多的部件构成的,这些部件叫Components, 也叫Gadget(神探加吉特那个词)。

这些部件有JLabel/JTextField/JButton/JCheckBox/JComboxBox/JList/JPanel。

它们构成了界面。

这些部件在屏幕上的排列顺序由LayoutManager负责管理,再加上Menu,Menu Bar 就构成了完整的用户界面。

用户界面只是一个外观。

界面是为了完成和用户的交互任务。

用户可以用Mouse/KeyBoard/甚至是Voice 。

界面取得用户输入事件后传给相应的Listener类对象,由这些特殊的Listener响应事件,这些Listener是一些接口(Interface),接口中有一些必须超越的方法。

事件发生后,这些被超越的方法自动调用以完成交互任务。

9.1Swing概况(1)Swing由纯Java写成,可移植性好,外观在不同平台上相同。

所以Swing部件称为轻量级组件(2)AWT部件和平台紧密相关,各种平台它们的外观不尽相同,所以称重量级组件,通用性差。

注意,某些Swing部件还是重量级的,比如JFrame和JAppletng.object ponent java.awt.container java.swing.JComponentJAVA的GUI部件都是Component,都有paint repaint update方法Container是一个集合,里面放了各种的GUI部件,而我们常用的Contentpane就是一个Container对象请大家注意J2SDK中的Components/container/Jcomponet的方法,这些方法是所有部件共有的。

Swing 部件继承图JComponent的好处1 自定义Look and Feel外观。

3ATWSwing事件处理

3ATWSwing事件处理

3ATWSwing事件处理AWT(AbtractWindowingToolkit)是用来创建Java图形用户界面的基本工具.JavaSwing是JFC(JavaFoundationClae)的一部分,它可以弥补AWT的一些不足.Container(容器):扩展组件的抽象基本类,例如Panel、Applet、Window、Dialog和Frame等是由Container演变的类,容器中可以包括多个组件。

LayoutManager(布局管理器):定义容器中组件的摆放位置和大小接口。

Java中定义了几种默认的布局管理器。

Graphic(图形):组件内与图形处理相关的类,每个组件都包含一个图形类的对象。

1组件",ColorgetForeground():获取组件的前景色。

",StringgetName():获取组件的名称。

",DimeniongetSize():以Dimenion对象的形式返回组件的大小。

",voidpaint(Graphicg):绘制该组件。

",voidrepaint():重绘组件。

",voidupdate(Graphicg):更新该组件。

",voidetViible(booleanb):根据参数的值显示或隐藏此组件。

",voidetSize(intwidth,intheight):调整组件的大小,使其宽度和高度分别为width和height。

",voidetName(Stringname):将组件的名称设置为指定的字符串。

",voidetForeground(Colorc):设置组件的前景色。

AWT的组件库画布(Canva)是处于屏幕上的一个空白矩形区域,在该区域可以绘图,也可以获得用户激发的事件。

画布组件可以监听鼠标事件和键盘事件。

publicvoidpaint(Graphicg)由于画布的paint()方法默认操作是清除画布,所以重写此方法的应用程序不需要调用uper.paint(g)。

java语言中awt和swing组件的基本用法

java语言中awt和swing组件的基本用法

java语言中awt和swing组件的基本用法AWT (Abstract Window Toolkit)是Java编程语言的一套图形用户界面(GUI)组件集,它提供了创建和管理窗口、按钮、标签等图形组件的能力。

AWT组件是依赖于操作系统的本地GUI组件。

下面是使用AWT组件的基本步骤:1.导入AWT相关的类:通常在使用AWT组件之前,需要导入`java.awt`和`java.awt.event`包中的类。

2.创建一个Frame:使用`Frame`类来创建一个顶级窗口。

3.创建其他组件:使用AWT提供的组件类(如`Button`、`Label`等)来创建其他需要的组件。

4.将组件添加到Frame:使用`add()`方法将其他组件添加到Frame中。

5.设置Frame的布局:使用`setLayout()`方法设置Frame的布局方式,如`FlowLayout`、`GridLayout`等。

6.设置Frame的大小和可见性:使用`setSize()`方法设置Frame 的大小,使用`setVisible(true)`方法设置Frame可见。

7.添加事件监听器:使用`addActionListener()`方法为按钮等组件添加事件监听器。

Swing是Java编程语言中提供的一组GUI组件,它是在AWT的基础上进行了增强和扩展。

Swing组件是纯Java组件,不依赖于操作系统的本地组件,因此具有更高的可移植性和灵活性。

下面是使用Swing组件的基本步骤:1.导入Swing相关的类:通常在使用Swing组件之前,需要导入`javax.swing`包中的类。

2.创建一个JFrame:使用`JFrame`类来创建一个顶级窗口。

3.创建其他组件:使用Swing提供的组件类(如`JButton`、`JLabel`等)来创建其他需要的组件。

4.将组件添加到JFrame中:使用`add()`方法将其他组件添加到JFrame中。

java中swing的用法

java中swing的用法

java中swing的用法Swing是Java中的一种GUI(图形用户界面)工具包,它是基于AWT(抽象窗口工具箱)开发的。

和AWT不同的是,Swing使用了Java 2D API来实现自己的用户界面元素,这使得Swing的外观和感觉更加现代化,更加灵活。

2. Swing的优点Swing的优点主要有以下几点:- 跨平台性:Swing是基于Java开发的,因此可以在任何支持Java的平台上运行,如Windows、Linux、Unix等。

- 灵活性:Swing提供了丰富的组件,开发者可以通过组合不同的组件来创建非常复杂的用户界面。

- 动态性:Swing提供了一些动画和效果来增强用户体验。

- 可定制性:Swing的外观和感觉可以通过使用不同的Look and Feel来改变,而这些Look and Feel可以在运行时动态地切换。

- 易学易用:Swing的API设计合理,很容易学习和使用。

3. Swing的组件Swing提供了很多组件,下面列举了一些常用的组件:- JLabel:标签组件,用于显示文本或图像。

- JButton:按钮组件,用于触发事件。

- JTextField:文本框组件,用于输入文本。

- JPasswordField:密码框组件,用于输入密码。

- JTextArea:文本域组件,用于显示多行文本。

- JList:列表组件,用于显示列表数据。

- JTable:表格组件,用于显示表格数据。

- JComboBox:下拉列表组件,用于选择一个选项。

- JCheckBox:复选框组件,用于选择多个选项中的一个或多个。

- JRadioButton:单选按钮组件,用于选择一个选项。

4. Swing的布局管理器在Swing中,布局管理器用于控制组件的排列。

Swing提供了多种布局管理器,下面列举了一些常用的布局管理器:- BorderLayout:边框布局管理器,将容器分成5个区域:北、南、东、西、中。

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

Java Swing中处理各组件事件的一般步骤是:1.新建一个组件(如JButton)。

2.将该组件添加到相应的面板(如JPanel)。

3.注册监听器以监听事件源产生的事件(如通过ActionListener来响应用户点击按钮)。

4.定义处理事件的方法(如在ActionListener中的actionPerformed中定义相应方法)。

以上步骤我们可以用多种方法实现。

但人们通常用二种方法。

第一种方法是只利用一个监听器以及多个if语句来决定是哪个组件产生的事件;第二种方法是使用多个内部类来响应不同组件产生的各种事件,其具体实现又分两种方式,一种是匿名内部类,一种是一般内部类。

为了说明如何使用上述三种方法实现事件的处理方法,我们建立一个简单的应用程序。

该程序界面有两个按钮,当用户点击相应的按钮,就会弹出一个对话框显示相应的内容。

通过这个简单程序,你可以实现自己更多、更复杂的用户界面程序。

首先,我们利用单个监听器来实现该程序。

我们定义一个名为Simple1的类来包括所有代码。

所有的用户行为(如点击按钮)由一个监听器SimpleListenner中的actionPerformed方法来处理。

以下是代码:import java.awt.*;import javax.swing.*;public class Simple1{private static JFrame frame; // 定义为静态变量以便main使用 private static JPanel myPanel; // 该面板用来放置按钮组件private JButton button1; // 这里定义按钮组件private JButton button2; // 以便让ActionListener使用public Simple1() // 构造器, 建立图形界面{// 新建面板myPanel = new JPanel();// 新建按钮button1 = new JButton("按钮1"); // 新建按钮1button2 = new JButton("按钮2");SimpleListener ourListener = new SimpleListener();// 建立一个actionlistener让两个按钮共享button1.addActionListener(ourListener);button2.addActionListener(ourListener);myPanel.add(button1); // 添加按钮到面板myPanel.add(button2);}private class SimpleListener implements ActionListener{public void actionPerformed(ActionEvent e){// 利用getActionCommand获得按钮名称// 也可以利用getSource()来实现// if (e.getSource() ==button1)String buttonName = e.getActionCommand();if (buttonName.equals("按钮1"))JOptionPane.showMessageDialog(frame,"按钮1 被点击");else if (buttonName.equals("按钮2"))JOptionPane.showMessageDialog(frame,"按钮2 被点击");elseJOptionPane.showMessageDialog(frame,"Unknown event" );}}public static void main(String s[]){Simple1 gui = new Simple1(); // 新建Simple1组件 frame = new JFrame("Simple1"); // 新建JFrame// 处理关闭事件的通常方法frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e){System.exit(0);} });frame.getContentPane().add(myPanel);frame.pack();frame.setVisible(true);}}让我们来看看以上代码是如何工作的。

在main方法中,我们定义了一个JFrame,然后将面板Jpanel添加到窗体中,该面板包括两个按钮。

相应的变量Frame,button1,button2定义在程序的开头部分。

在程序入口main方法中,首先新建Simple1组件,通过构造器建立用户GUI,定义一个面板Jpanle,,增加两个按钮,然后利用JButton.addActionListerner将两个按钮加入到一个活动监听器SimpleLister中,最后,两个按钮添加到面板。

当GUI 建立后,我们将面板添加到窗体并显示结果。

当用户点击按钮时,程序调用actionPerformed方法,通过if语句来判断是哪一个按钮被点击,然后在对话框中显示相应的内容。

利用一个监听器来处理事件的缺点是,当程序比较复杂时,需要一大串的if 语句来实现,程序代码较难阅读与维护。

当然,如果处理的事件较少,这种方式比较简单。

通过使用匿名内部类可以解决上述存在的问题。

使用简单的匿名内部类作为addActionListener的变量即可。

以下是实现代码:import java.awt.*;import javax.swing.*;public class Simple2{private static JFrame frame; // 定义为静态变量以便main使用 private static JPanel myPanel; // 该面板用来放置按钮组件private JButton button1; // 这里定义按钮组件private JButton button2; // 以便让ActionListener使用public Simple2() // 构造器, 建立图形界面{// 新建面板myPanel = new JPanel();// 新建按钮button1 = new JButton("按钮1"); // 新建按钮1button2 = new JButton("按钮2");// 每一个事件源需要一个监听器// 定义一个匿名内部类来监听事件源产生的事件button1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){JOptionPane.showMessageDialog(frame,"按钮1 被点击");}});button2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {JOptionPane.showMessageDialog(frame,"按钮2 被点击");}});myPanel.add(button1); // 添加按钮到面板myPanel.add(button2);}public static void main(String s[]){Simple2 gui = new Simple2(); // 新建Simple2组件 frame = new JFrame("Simple2"); // 新建JFrame// 处理关闭事件的通常方法frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e){System.exit(0);} });frame.getContentPane().add(myPanel);frame.pack();frame.setVisible(true);}}使用匿名内部类同样存在许多另外的问题。

首先,根据组件在代码中被定义的不同位置,类的定义以及处理事件的代码将分散在程序的各个部分,不是集中在一块,同样不便于阅读与维护。

各事件的处理全部由嵌套的程序块组成,视觉上很难定位程序代码。

如果事件处理程序比较复杂,内部类中的代码将变得很长,你将找不到相应的组件定义位置。

最后,当工具栏、菜单栏目等需要处理同样的用户行为时,该方法将使代码更难维护。

我们使用一般的命名内部类可以解决以上许多问题。

所有的事件处理方法都集中在一块,并且都具有有意义的名称,程序非常容易阅读与维护。

单个的事件处理程序也可以被工具栏、菜单栏等重复使用,以下是实现代码:import java.awt.*;import javax.swing.*;public class Simple3{private static JFrame frame; // 定义为静态变量以便main使用private static JPanel myPanel; // 该面板用来放置按钮组件private JButton button1; // 这里定义按钮组件private JButton button2; // 以便让ActionListener使用// 利用一般内部类来监听每一个事件源产生的事件如(button1, button2)private class Button1Handler implements ActionListener{public void actionPerformed(ActionEvent e){JOptionPane.showMessageDialog(frame,"按钮1 被点击");}}private class Button2Handler implements ActionListener{public void actionPerformed(ActionEvent e){JOptionPane.showMessageDialog(frame,"按钮2 被点击");}}public Simple3() // // 构造器, 建立图形界面{// 新建面板myPanel = new JPanel();// 新建按钮button1 = new JButton("按钮1"); // 新建按钮1button2 = new JButton("按钮2");// 对每一个组件注册监听内部类button1.addActionListener(new Button1Handler());button2.addActionListener(new Button2Handler());myPanel.add(button1); // 添加按钮到面板myPanel.add(button2);}public static void main(String s[]){Simple3 gui = new Simple3(); // 新建Simple3组件frame = new JFrame("Simple3"); // 新建JFrame// 处理关闭事件的通常方法frame.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e){System.exit(0);} });frame.getContentPane().add(myPanel);frame.pack();frame.setVisible(true);}}JComponent定义了一个名为listenerList的受保护EventListListener属性,因而所有它的子类都继承了这个属性。

相关文档
最新文档