java向窗口添加菜单_Java基础之创建窗口——向窗口中添加菜单(Sketcher)
控制台程序。
JMenuBar对象表示放在窗口顶部的菜单栏。可以为JMenuBar对象添加JMenu或JMenuItem对象,它们都显示在菜单栏上。JMenu对象是带有标签的菜单,单击就可以显示一列菜单项。JMenuItem对象表示菜单中带有标签的菜单项,单击就会执行某个程序动作。
// Main window for the Sketcher application
import javax.swing.*;
import static java.awt.event.InputEvent.*; // For modifier constants
@SuppressWarnings("serial")
public class SketcherFrame extends JFrame {
// Constructor
public SketcherFrame(String title) {
setTitle(title); // Set the window title
setDefaultCloseOperation(EXIT_ON_CLOSE);
setJMenuBar(menuBar); // Add the menu bar to the window
JMenu fileMenu = new JMenu("File"); // Create File menu
JMenu elementMenu = new JMenu("Elements"); // Create Elements menu
fileMenu.setMnemonic('F'); // Create shortcut
elementMenu.setMnemonic('E'); // Create shortcut
// Construct the file drop-down menu
newItem = fileMenu.add("New"); // Add New item
openItem = fileMenu.add("Open"); // Add Open item
closeItem = fileMenu.add("Close"); // Add Close item
fileMenu.addSeparator(); // Add separator
saveItem = fileMenu.add("Save"); // Add Save item
saveAsItem = fileMenu.add("Save As..."); // Add Save As item
fileMenu.addSeparator(); // Add separator
printItem = fileMenu.add("Print"); // Add Print item
// Add File menu accelerators
newItem.setAccelerator(KeyStroke.getKeyStroke('N',CTRL_DOWN_MASK ));
openItem.setAccelerator(KeyStroke.getKeyStroke('O', CTRL_DOWN_MASK));
saveItem.setAccelerator(KeyStroke.getKeyStroke('S', CTRL_DOWN_MASK));
printItem.setAccelerator(KeyStroke.getKeyStroke('P', CTRL_DOWN_MASK));
// Construct the Element drop-down menu
elementMenu.add(lineItem = new JRadioButtonMenuItem("Line", true));
elementMenu.add(rectangleItem = new JRadioButtonMenuItem("Rectangle", false));
elementMenu.add(circleItem = new JRadioButtonMenuItem("Circle", false));
elementMenu.add(curveItem = new JRadioButtonMenuItem("Curve", false));
ButtonGroup types = new ButtonGroup();
types.add(lineItem);
types.add(rectangleItem);
types.add(circleItem);
types.add(curveItem);
// Add element type accelerators
lineItem.setAccelerator(KeyStroke.getKeyStroke('L', CTRL_DOWN_MASK));
rectangleItem.setAccelerator(KeyStroke.getKeyStroke('E', CTRL_DOWN_MASK));
circleItem.setAccelerator(KeyStroke.getKeyStroke('I', CTRL_DOWN_MASK));
curveItem.setAccelerator(KeyStroke.getKeyStroke('V', CTRL_DOWN_MASK));
elementMenu.addSeparator();
JMenu colorMenu = new JMenu("Color"); // Color submenu
elementMenu.add(colorMenu); // Add the submenu
colorMenu.add(redItem = new JCheckBoxMenuItem("Red", false));
colorMenu.add(yellowItem = new JCheckBoxMenuItem("Yellow", false));
colorMenu.add(greenItem = new JCheckBoxMenuItem("Green", false));
colorMenu.add(blueItem = new JCheckBoxMenuItem("Blue", true));
// Add element color accelerators
redItem.setAccelerator(KeyStroke.getKeyStroke('R', CTRL_DOWN_MASK));
yellowItem.setAccelerator(KeyStroke.getKeyStroke('Y', CTRL_DOWN_MASK));
greenItem.setAccelerator(KeyStroke.getKeyStroke('G', CTRL_DOWN_MASK));
blueItem.setAccelerator(KeyStroke.getKeyStroke('B', CTRL_DOWN_MASK));
menuBar.add(fileMenu); // Add the file menu
menuBar.add(elementMenu); // Add the element menu
}
private JMenuBar menuBar = new JMenuBar(); // Window menu bar
// File menu items
private JMenuItem newItem, openItem, closeItem,
saveItem, saveAsItem, printItem;
// Element menu items
private JRadioButtonMenuItem lineItem, rectangleItem, circleItem, // Types
curveItem, textItem;
private JCheckBoxMenuItem redItem, yellowItem, // Colors
greenItem, blueItem ;
}
// Sketching application
import javax.swing.*;
import java.awt.*;
import javax.swing.SwingUtilities;
public class Sketcher {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createWindow();
}
});
}
public static void createWindow(){
window = new SketcherFrame("Sketcher"); // Create the app window
Toolkit theKit = window.getToolkit(); // Get the window toolkit
Dimension wndSize = theKit.getScreenSize(); // Get screen size
// Set the position to screen center & size to half screen size
window.setSize(wndSize.width/2, wndSize.height/2); // Set window size
window.setLocationRelativeTo(null); // Center window
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setVisible(true);
}
private static SketcherFrame window; // The application window
}
java向窗口添加菜单_Java基础之创建窗口——向窗口中添加菜单(Sketcher)相关推荐
- java图形用户登录界面_java图形化界面实现登录窗口
登录窗口一般很常见,现在让我们自己也来写一个吧! ps:很多import是重复的,是因为我是分了几个类写的,必须单独导入 //模拟qq登录窗口 import java.awt.*; import ja ...
- java list 截取部分数据_Java List.subList()方法:获取列表中指定范围的子列表
集合类中的 List.subList() 方法用于获取列表中指定范围的子列表,该列表支持原列表所支持的所有可选操作.返回列表中指定范围的子列表. 语法: subList(int fromIndex,i ...
- java返回组件所在窗体_Java基础知识笔记第九章:组件及事件处理
java Swing 图形用户界面(GUI : Graphics User Interface) 窗口 JFrame常用方法 JFrame()创建一个无标题的窗口. JFrame(String s)创 ...
- java增强型for报错_Java基础——增强for循环
java1.5版本引入了一个增强for循环,基本原理和for循环类似. 语法声明:for(表达式:条件表达式) 举例:for (String str : set) 解释:set代表set集合,str代 ...
- java继承原理内存角度_Java基础知识巩固
最近发现自己的Java基础知识还是有点薄弱,刚好有点空闲时间进行再补一补,然后进行整理一下,方便自己以后复习.其实个人认为Java基础还是很重要的,不管从事Java后端开发还是Android开发,Ja ...
- java arraylist枚举器遍历_Java基础(七)泛型数组列表ArrayList与枚举类Enum
一.泛型数组列表ArrayList 1.在Java中,ArrayList类可以解决运行时动态更改数组的问题.ArrayList使用起来有点像数组,但是在添加或删除元素时,具有自动调节数组容量的功能,而 ...
- java jtable 复选框_java swing如何在JTable一个单元格添加多个复选框
展开全部 java swing中在jTable中添加多个复选框的方32313133353236313431303231363533e59b9ee7ad9431333337616566式如下:impor ...
- java 反射创建对象并赋值_java使用反射创建并操作对象的方法
Class 对象可以获得该类里的方法(由 Method 对象表示).构造器(由 Constructor 对象表示).成员变量(由 Field 对象表示),这三个类都位于 java.lang.refle ...
- java 邮件 已读回执_java – 在Firebase群组消息传递应用中实施已读回执功能
为此,您需要在名为seenBy的Firebase数据库中添加另一个节点,该节点必须嵌套在meassage部分中的每个messageId下.您的数据库应如下所示: Firebase-root | --- ...
最新文章
- 一文读懂对抗生成网络的3种模型
- 赋能云HBase备份恢复 百T级别数据量备份恢复支持
- 笔记-计算机网络基础-综合布线系统
- leetcode-合并两个有序链表
- 委派模式与策略模式综合应用
- JS函数,数组,日期
- 获取滚动条所在页面位置。做一个类似TX的消息框
- Python Frozenset()
- linux登录显示 Error in service module错误
- 鸿蒙系统下载地址_华为鸿蒙代码全开源
- 管螺纹如何标注_天天和螺纹打交道,你知道有多少种螺纹吗,原来螺纹种类这么乱...
- PMP知识点速记——4.1制定项目章程
- python自动下载小说
- 中国大学慕课mooc答题/自动播放脚本(domooc)使用教程
- 高斯正反算—投影坐标转大地坐标、大地坐标转投影坐标(附有完整代码及测试结果)
- 【Flask项目】项目准备之-容联云短信服务平台使用—发送短信、Flask-limiter限流
- Pyhton可视化(1): 历年中国大学学术排行榜
- Android设备的序列号与ro.serialno
- steam如何一键登录_如何在Steam上启用一键通
- 相关性分析 addmodulescore得到的每个细胞评分与page_enrichments得到的每个细胞评分的相关性