`

JButton演示操作

阅读更多
import javax.swing.*;
import java.awt.Toolkit;
import java.awt.event.*;
import java.awt.*;

/**
 * Title:JButton操作
 * Description:演示按钮的事件响应和按钮的实效
 * @author fan
 *
 */
public class MyButtonDemo extends JFrame implements ActionListener{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 定义三个按钮
	 */
	private JButton b1, b2, b3;
	/**
	 * 定义ImageIcon对象用于图标对象
	 */
	private ImageIcon rightImage, middleImage, leftImage;
	
	/**
	 * 定义一个面板
	 */
	private JPanel contentPane =new JPanel();
	/**
	 * 方法说明:构造方法
	 */
	public MyButtonDemo(){
		leftImage = createImageIcon("base2011/images/left.gif");
		middleImage = createImageIcon("base2011/images/middle.gif");
		rightImage = createImageIcon("base2011/images/right.gif");
		//构建窗体
		this.lunchFrame("ButtonDemo");
	}
	/**
	 * 构建窗体
	 */
	private void lunchFrame(String title){
		b1 = new JButton("失效中间按钮", leftImage);
		b1.setVerticalTextPosition(AbstractButton.CENTER);
		b1.setHorizontalTextPosition(AbstractButton.LEADING);
		b1.setMnemonic(KeyEvent.VK_D);
		b1.setActionCommand("Disable");
		b1.setToolTipText("点击此按钮时中间按钮失效");
		b1.addActionListener(this);
		
		b2 = new JButton("中间按钮", middleImage);
		b2.setVerticalTextPosition(AbstractButton.BOTTOM);
		b2.setHorizontalTextPosition(AbstractButton.LEADING);
		b2.setMnemonic(KeyEvent.VK_M);
		b2.setToolTipText("点击此按钮无任何事件发生");
		
		b3 = new JButton("激活中间按钮", rightImage);
		b3.setHorizontalTextPosition(AbstractButton.LEADING);
		b3.setVerticalTextPosition(AbstractButton.CENTER);
		b3.setMnemonic(KeyEvent.VK_E);
		b3.setToolTipText("点击此按钮使中间按钮激活");
		b3.setActionCommand("Enable");
		b3.setEnabled(false);
		b3.addActionListener(this);
		
		contentPane.add(b1);
		contentPane.add(b2);
		contentPane.add(b3);
		contentPane.setOpaque(false);//绘制边界内所有元素
		this.setContentPane(contentPane);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
		this.setTitle(title);
		this.pack();
		//将窗体定义到屏幕中间位置
		this.setCenterLocation();
		JFrame.setDefaultLookAndFeelDecorated(false);
	}
	/**
	 * 方法说明:创建图标对象
	 * @param path 图片的存放路径
	 * @return ImageIcon
	 */
	protected static ImageIcon createImageIcon(String path){
		ImageIcon image = null;
		try{
			java.net.URL imgURL = MyButtonDemo.class.getClassLoader().getResource(path);
			if(imgURL != null){
				image = new ImageIcon(imgURL);
			}else{
				System.err.println("could not find file: "+path);
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		if(image != null){
			return image;
		}else{
			return null;
		}
	}
	/**
	 * 方法说明:将窗体定位到屏幕中间
	 */
	public void setCenterLocation(){
		Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
		int w = this.getSize().width;
		int h = this.getSize().height;
		System.out.println("宽度: "+w+" ,高度:"+h);
		int x = (dim.width - w)/2;
		int y = (dim.height - h)/2;
		this.setLocation(x, y);
	}
	/**
	 * 方法说明:事件处理
	 */
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if("Disable".equals(e.getActionCommand())){
			b1.setEnabled(false);
			b2.setEnabled(false);
			b3.setEnabled(true);
		}else{
			b1.setEnabled(true);
			b2.setEnabled(true);
			b3.setEnabled(false);
		}
	}
	/**
	 * 方法说明:主方法
	 * @param args
	 */
	public static void main(String[] args){
		new MyButtonDemo();
	}
}

 

  • 大小: 172 Bytes
  • 大小: 235 Bytes
  • 大小: 172 Bytes
分享到:
评论

相关推荐

    一个可以淡入淡出的JButton

    MouseListener用于监听用户的鼠标操作,而Timer类则可以用来在指定间隔执行代码,实现动画效果。 描述中提到的“博文链接:https://zzycami.iteye.com/blog/858148”是一个ITEYE博客上的文章链接,很可能详细介绍了...

    java实现汉诺塔演示及手动操作汉诺塔

    - 演示界面和手动操作界面之间的切换,可能是通过按钮或者菜单项实现的。 **AWT组件**: - 汉诺塔的表示可能由多个JButton组成,每个按钮代表一个圆盘。按钮的大小、颜色和位置可以反映出圆盘的大小和在柱子上的...

    汉诺塔自动演示

    在Java中,这通常会使用Java Swing或JavaFX库来创建窗口和控件,如JButton和JLabel,用于显示圆盘和控制游戏的执行。用户可能可以通过点击按钮启动汉诺塔游戏,并观察圆盘按照正确的顺序移动。 源码分析时,我们...

    java swing控件演示

    每个组件都可以注册一个或多个监听器,如ActionListener、MouseListener、KeyListener等,以响应用户的操作。 9. **布局管理**: Swing提供了多种布局管理器,如FlowLayout、BorderLayout、GridLayout和...

    产品演示程序

    在实际的应用场景中,"产品演示程序"可能还包括其他Swing组件,如JScrollPane用于滚动视图,JOptionPane用于弹出对话框提示用户操作,甚至是JFileChooser用于让用户选择文件。所有这些组件协同工作,为用户提供了一...

    JAVA实现汉诺塔自动演示

    - `JButton startButton`: 启动汉诺塔演示的按钮。 - `JTextArea displayArea`: 显示每一步移动情况的文本区域。 - `MouseListener`和`ActionListener`:监听用户操作,当用户点击开始按钮时,调用`hanoi`方法...

    数据结构链表演示(java swing)

    例如,JFrame作为主窗口,JButton用于触发链表或堆栈的操作,而JLabel可以用来显示操作结果或当前链表的状态。用户可以通过点击按钮,触发对应的Java事件监听器,进而调用链表或堆栈的相应方法。 为了实现这些功能...

    swing各个组件实例演示

    Swing组件主要由JComponent类及其子类构成,包括按钮(JButton)、文本框(JTextField)、标签(JLabel)、面板(JPanel)、滚动窗格(JScrollPane)、菜单(JMenu)等。这些组件为创建复杂的用户界面提供了基础。 ...

    sun netbeans 数据库开发演示视频

    在视频中,开发者可能展示了如何利用Swing组件(如JFrame、JTable、JButton等)构建一个用户友好的界面,实现对数据库记录的查看、添加、修改和删除功能。 4. **增删改查(CRUD)操作**:这是数据库应用的基础,...

    文件操作的JAVA源码

    此外,Swing提供了丰富的组件库,如`JButton`(按钮)、`JLabel`(标签)、`JTextArea`(文本区域)等,可以组合成复杂的用户界面。 6. **菜单演示**:在Java中,`JMenuBar`和`JMenu`类用于创建菜单栏和子菜单,` ...

    java JToolBar的基础演示

    在这个基础演示中,我们将深入理解`JToolBar`的使用方法,以及如何在Java Swing应用中集成它。 首先,`JToolBar`是`JComponent`的一个子类,这意味着它可以像其他Swing组件一样进行定制和布局管理。创建一个`...

    java 设置默认按钮

    下面是一个简单的示例代码,演示如何创建一个包含两个按钮的窗口,并设置其中一个为默认按钮: ```java public class JButtonDemo4 { public static void main(String[] args) { JFrame frame = new JFrame("Java...

    设计滚动字演示线程状态及改变方法

    - `button_start` 和 `button_interrupt`:分别用于启动和中断线程的 `JButton`。 - `text_state`:用于显示线程当前状态的 `JTextField`(原文未给出此部分代码,这里假设存在)。 2. **线程控制**: - `sleep...

    swing全组件演示开源项目

    1. JButton:用于创建按钮,可以绑定事件监听器,响应用户的点击操作。 2. JTextField:用于输入单行文本,支持文本验证和格式化。 3. JLabel:显示文本或图像,常用于提供说明或者标题。 4. JPanel:容器组件,可以...

    Java哲学家就餐GUI演示

    在这个演示中,可能包含了JFrame、JButton、JLabel等组件,以及ActionListener接口来处理用户的交互事件,例如启动、停止或调整哲学家的行为。 6. **事件驱动编程**:GUI程序通常采用事件驱动模型,当用户进行操作...

    操作系统进程调度用JavaGUI模拟

    import java.awt.*; import java.awt.event.*; import javax.swing.*; class PCDD { public static void main(String []args) ... ProcessFrame PF=new ProcessFrame();... b1=new JButton("开始演示");

    冒泡排序单步演示

    - **`JButton`**:按钮组件,触发排序操作。 3. **关键方法**: - **`maoPaoSort()`**:此方法实现了冒泡排序的逻辑,并且更新了界面上的标签以显示排序的过程。 - **数据准备**:首先从文本框获取用户输入的...

    Java Swing 组件全演示源代码.zip

    这个“Java Swing 组件全演示源代码.zip”文件包含了对Java Swing各种组件的实例化和使用展示,非常适合初学者学习和开发者参考。 首先,Swing提供了大量的组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel...

    Java Swing 组件全演示

    在Java Swing组件全演示的小程序中,开发者展示了如何使用这些组件创建一个综合的用户界面,让用户能够交互操作。 例如,JSplitPane是一个特殊容器,用于拆分两个子组件。它可以水平或垂直分割,允许用户动态调整两...

    java如何在绘图板上实现undo(撤销操作).docx

    下面是一个简单的例子,演示如何在一个JApplet中使用这些概念来实现撤销/重做功能。在这个例子中,用户可以通过点击“Draw Line”和“Draw Circle”按钮在绘图板上绘制直线和圆,所有绘制操作都可以通过`UndoManager...

Global site tag (gtag.js) - Google Analytics