import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.AbstractButton;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JSeparator;
import javax.swing.JTextField;
import com.sun.xml.internal.ws.api.server.Container;
/**
* 菜单事件处理
* @author Administrator
*
*/
public class SwingWinMenus extends JFrame{
public static int WIDTH = 300;
public static int HEIGHT = 300;
public static String TITLE = "SwingWin";
java.awt.Container frameContainer;
JTextField textField = new JTextField(50);
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("File");
JMenuItem fileNew = new JMenuItem("New");
JMenuItem fileOpen = new JMenuItem("Open");
JMenuItem fileSave = new JMenuItem("Save");
JMenuItem fileExit = new JMenuItem("Exit");
JMenu editMenu = new JMenu("Edit");
JMenuItem editCut = new JMenuItem("Cut");
JMenuItem editCopy = new JMenuItem("Copy");
JMenuItem editPaste = new JMenuItem("Paste");
JMenu specialMenu = new JMenu("Special");
JCheckBoxMenuItem specialCheck1 = new JCheckBoxMenuItem("Check 1");
JCheckBoxMenuItem specialCheck2 = new JCheckBoxMenuItem("Check 2", true);
JSeparator separator = new JSeparator();
JRadioButtonMenuItem specialRadio1 = new JRadioButtonMenuItem("Radio 1");
JRadioButtonMenuItem specialRadio2 = new JRadioButtonMenuItem("Radio 2");
ButtonGroup buttonGroup = new ButtonGroup();
public SwingWinMenus() {
super("");
fileMenu.add(fileNew);
fileMenu.add(fileOpen);
fileMenu.add(fileSave);
fileMenu.add(fileExit);
editMenu.add(editCut);
editMenu.add(editCopy);
editMenu.add(editPaste);
specialMenu.add(specialCheck1);
specialMenu.add(specialCheck2);
specialMenu.add(separator);
buttonGroup.add(specialRadio1);
buttonGroup.add(specialRadio2);
specialMenu.add(specialRadio1);
specialMenu.add(specialRadio2);
menuBar.add(fileMenu);
menuBar.add(editMenu);
menuBar.add(specialMenu);
setJMenuBar(menuBar);
frameContainer = getContentPane();
frameContainer.setLayout(null);
textField.setBounds(100, 100, 100, 20);
frameContainer.add(textField);
setupEventHandlers();
setSize(450, 450);
setVisible(true);
}
void setupEventHandlers() {
addWindowListener(new WindowHandler());
fileNew.addActionListener(new MenuItemHandler());
fileOpen.addActionListener(new MenuItemHandler());
fileSave.addActionListener(new MenuItemHandler());
fileExit.addActionListener(new MenuItemHandler());
editCut.addActionListener(new MenuItemHandler());
editCopy.addActionListener(new MenuItemHandler());
editPaste.addActionListener(new MenuItemHandler());
specialCheck1.addItemListener(new ItemHandler());
specialCheck2.addItemListener(new ItemHandler());
specialRadio1.addItemListener(new ItemHandler());
specialRadio2.addItemListener(new ItemHandler());
}
public static void main(String[] args) {
SwingWinMenus app = new SwingWinMenus();
}
public class WindowHandler extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
public class MenuItemHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();
if (cmd.equals("Exit"))
System.exit(0);
else
textField.setText(cmd);
}
}
public class ItemHandler implements ItemListener {
public void itemStateChanged(ItemEvent e) {
AbstractButton button = (AbstractButton) e.getItem();
String label = button.getText();
if (button.isSelected())
label += " true";
else
label += " false";
textField.setText(label);
}
}
}
分享到:
相关推荐
在Java编程中,菜单栏(Menu Bar)是用户界面中的一个重要组成部分,用于组织和呈现应用程序的主要功能选项。...理解这些基本概念并熟练运用它们,可以帮助开发者创建出功能丰富且用户友好的Java应用程序。
通常,它会包含一个主类,创建并设置这些组件,然后将它们添加到容器(如`JFrame`)中,最后设置窗口的基本属性如大小和位置,并调用`setVisible(true)`使其可见。 总结起来,`Java Swing`中的`JMenu`、`JTable`和`...
这些功能的实现需要理解棋盘状态的管理,以及通过算法判断棋局的变化,这涉及到数组或集合数据结构的运用,以及搜索算法的设计。 2. **音乐播放**:音乐播放功能可能使用了Java的音频处理API,如`javax.sound....
- JAVA GUI编程:利用Swing库构建用户界面,包括JFrame、JMenu、JMenuItem、JToolBar等组件的使用。 - 图形绘制:运用Graphics2D API进行图形绘制,包括线条、形状的绘制与填充。 - 文件操作:通过File类及流处理...
创建菜单的基本步骤包括:创建`JMenuBar`,添加`JMenu`,然后向`JMenu`中添加` JMenuItem`。同时,可以通过`setAccelerator()`方法为菜单项设置快捷键,提高用户体验。 其次,弹出式菜单(PopupMenu)是另一种常见...
通过这些变量和标志位的合理运用,可以实现基本的数学运算功能。 #### 五、总结 本文通过对一份Java计算器源代码的解析,不仅介绍了Swing的基础用法,还展示了如何构建一个完整的图形界面应用程序。通过学习这份...
4. 基本控件:JButton, JComboBox, JList, JMenu, JSlider, JTextField 5. 不可编辑信息的显示:JLabel, JProgressBar, ToolTip 6. 可编辑信息的显示:JColorChooser, JFileChoose, JFileChooser, JTable, JTextArea...
Java图形用户界面(GUI,Graphical User Interface)程序设计是...而《Java GUI程序设计基础》这本书无疑是一个很好的起点,它将引导你逐步走进Java GUI的世界,理解其工作原理,并最终能够熟练地运用到实际项目中去。
这个项目展示了如何运用Java进行客户端/服务器(C/S)模式的编程,以及构建用户界面。以下是关于这些知识点的详细说明: 1. **Java编程**:Java是一种广泛使用的面向对象的编程语言,具有跨平台的特性,使得开发的...
JMenu fileMenu = new JMenu("文件"); JMenuItem openItem = new JMenuItem("打开"); JMenuItem saveItem = new JMenuItem("保存"); fileMenu.add(openItem); fileMenu.add(saveItem); menuBar.add(fileMenu); ...
8. **设计模式**:虽然这是一个简单的应用,但依然可以运用设计模式,如模型-视图-控制器(MVC)模式,将界面与业务逻辑分离,使代码更易于维护和扩展。 通过学习和分析JNotePad的源代码,初学者不仅可以掌握Java ...
2. **面向对象编程**:实验的核心是运用面向对象的编程思想,如定义类(记事本窗口类、查询类、主类)以及对象的创建和交互。面向对象编程强调对象的封装、继承和多态,使得代码更具模块化和可复用性。 3. **集成...
中级界面篇的学习通常涵盖以上这些核心概念,通过实践和案例分析,你可以深入理解和熟练运用这些知识,从而设计出专业且功能丰富的Java应用程序界面。在实际项目中,不断练习和优化你的设计技巧,将使你成为一个出色...
通过研究这些实例代码,开发者不仅可以学习到Swing的基本用法,还能了解如何在实际项目中灵活运用。同时,这些代码也可以作为模板,为自己的项目提供灵感和起点。对于初学者而言,这是一个很好的实践和理解Java GUI...
- `JMenuBar` 和 `JMenu`:菜单栏和菜单项。 - `JButton`:多种按钮,包括数字按钮、运算符按钮、特殊功能按钮等。 - `JTextArea` 和 `JScrollPane`:帮助信息的显示区域。 #### 三、核心功能实现 1. **基本运算...
3. 菜单栏:`JMenuBar`和`JMenu`构建菜单,` JMenuItem`添加菜单项。通过`ActionListener`监听用户的菜单选择并执行相应的操作。 4. 撤销/重做:使用`DocumentListener`监听文本变化,存储历史记录,实现撤销/重做...
理解并熟练运用这些布局管理器,可以帮助我们创建出美观且响应良好的用户界面。 事件处理是Swing中的另一个核心概念,允许用户与界面进行交互。当用户执行操作,如点击按钮或输入数据,就会触发相应的事件。通过...
Swing的核心组件包括JFrame(窗口)、JPanel(面板)、JButton(按钮)、JLabel(标签)、JTextField(文本字段)、JTextArea(文本区域)、...、JRadioButton(单选按钮)以及JMenu和JMenuItem(菜单和菜单项)等...
它作为一个简单的实例,可以帮助初学者更好地理解和掌握Java核心编程概念及Swing GUI组件的基本用法。 ### 二、主要类与功能介绍 #### 1. **ChessBoard 类** - **类作用**:作为整个游戏的主界面类,负责游戏窗口...