JAVA:简单添加菜单界面(swing)

  1 package com.le.menu;
  2
  3 import java.awt.Color;
  4 import java.awt.Container;
  5 import java.awt.FlowLayout;
  6 import java.awt.GridLayout;
  7 import java.awt.event.ActionEvent;
  8 import java.awt.event.ActionListener;
  9 import java.awt.event.ItemEvent;
 10 import java.awt.event.ItemListener;
 11 import java.awt.event.KeyEvent;
 12
 13 import javax.swing.JFrame;
 14 import javax.swing.JLabel;
 15 import javax.swing.JMenu;
 16 import javax.swing.JMenuBar;
 17 import javax.swing.JMenuItem;
 18 import javax.swing.JPanel;
 19 import javax.swing.JRadioButtonMenuItem;
 20
 21 public class MenuManagerShow {
 22     private MenuManagerShow() {
 23         init();
 24     }
 25
 26     public static void main(String[] args) {
 27         MenuManagerShow menuManager = new MenuManagerShow();
 28         menuManager.show();
 29     }
 30
 31     private void show() {
 32
 33     }
 34
 35     class MenuItemListener implements ActionListener {
 36         @Override
 37         public void actionPerformed(ActionEvent e) {
 38             statusLabel.setText("JMenu Item clicked:" + e.getActionCommand() + ".");
 39         }
 40     }
 41
 42     /**
 43      * 给主窗口设置背景色
 44      *
 45      * @param mainFrame
 46      *            主窗口
 47      * @see 分析:JFrame默认使用流式布局管理器(FlowLayout)将整个窗体进行覆盖操作,<br>
 48      *      设置的颜色被布局管理器给覆盖住了,所以无法看见。<br>
 49      *      解决:在JFrame中添加一个面板容器,使得面板容器对窗体覆盖即可。<br>
 50      */
 51     private void initFrameBgColor(JFrame mFrame) {
 52         Container pane = mFrame.getContentPane();
 53         pane.setBackground(Color.orange);
 54     }
 55
 56     /**
 57      * 标题
 58      */
 59     private static final String MENU_MANAGER_TITILE = "Manager Tool";
 60
 61     private JFrame mainFrame;
 62     private JLabel headerLabel;
 63     private JLabel statusLabel;
 64     private JPanel controlPanel;
 65
 66     private void init() {
 67         // 主界面
 68         mainFrame = new JFrame();
 69         // 标题
 70         mainFrame.setTitle(MENU_MANAGER_TITILE);
 71         // 设置窗口大小
 72         mainFrame.setSize(400, 400);
 73         // 设置窗体的位置属性
 74         mainFrame.setLocation(400, 200);
 75         // 设置窗体关闭时退出程序(3)
 76         mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 77         /*
 78          * mainFrame.addWindowListener(new WindowAdapter() { public void
 79          * windowClosing(WindowEvent windowEvent) { System.exit(0); } });
 80          */
 81         // 设置允许调整窗体大小
 82         mainFrame.setResizable(true);
 83         mainFrame.setLayout(new GridLayout(3, 1));
 84         // 下边这种方式设置第一个Frame的背景色不生效,需要用initFrameBgColor()里的方式
 85         // mainFrame.setBackground(Color.blue);
 86         initFrameBgColor(mainFrame);
 87
 88         headerLabel = new JLabel("11", JLabel.CENTER);
 89         statusLabel = new JLabel("22", JLabel.CENTER);
 90         controlPanel = new JPanel();
 91         controlPanel.setLayout(new FlowLayout());
 92         controlPanel.setBackground(Color.gray);
 93
 94         mainFrame.add(headerLabel);
 95         mainFrame.add(controlPanel);
 96         mainFrame.add(statusLabel);
 97
 98         initMenuBar(mainFrame);
 99
100         mainFrame.setVisible(true);
101     }
102
103     /**
104      * 初始化菜单栏
105      *
106      * @param mainFrame
107      */
108     private void initMenuBar(JFrame mFrame) {
109         // 创建菜单栏
110         final JMenuBar menuBar = new JMenuBar();
111
112         // 创建菜单栏菜单
113         JMenu fileMenu = new JMenu("File");
114         JMenu editMenu = new JMenu("Edit");
115         final JMenu aboutMenu = new JMenu("About");
116         final JMenu linkMenu = new JMenu("Links");
117
118         // 创建菜单栏菜单子项
119         JMenuItem newMenuItem = new JMenuItem("New");
120         newMenuItem.setMnemonic(KeyEvent.VK_N);
121         newMenuItem.setActionCommand("New");
122
123         // 创建菜单栏菜单子项:允许是否选中
124         final JRadioButtonMenuItem showLinksMenu = new JRadioButtonMenuItem("Show Links", true);
125         showLinksMenu.addItemListener(new ItemListener() {
126             public void itemStateChanged(ItemEvent e) {
127                 // state,结果1表示选中,结果2表示不选中
128                 // System.out.println(e.getStateChange());
129                 // 获取第三个菜单栏菜单
130                 if (menuBar.getMenu(3) != null) {
131                     menuBar.remove(linkMenu);
132                     // 重新绘制主界面
133                     mainFrame.repaint();
134                 } else {
135                     menuBar.add(linkMenu);
136                     mainFrame.repaint();
137                 }
138             }
139         });
140
141         // 创建监听器
142         MenuItemListener menuItemListener = new MenuItemListener();
143
144         // 添加点击的动作
145         newMenuItem.addActionListener(menuItemListener);
146
147         fileMenu.add(newMenuItem);
148         fileMenu.add(showLinksMenu);
149
150         menuBar.add(fileMenu);
151         menuBar.add(editMenu);
152         menuBar.add(aboutMenu);
153         menuBar.add(linkMenu);
154         // 添加菜单栏后,下边的组件高度会被挤压变小
155         mFrame.setJMenuBar(menuBar);
156     }
157 }

原文地址:https://www.cnblogs.com/leonlipfsj/p/10351127.html

时间: 2024-11-05 21:50:10

JAVA:简单添加菜单界面(swing)的相关文章

JAVA:简单添加菜单界面(swing)第二版

环境:jdk1.8 1 package com.le.tool; 2 3 import java.awt.Color; 4 import java.awt.Container; 5 import java.awt.FlowLayout; 6 import java.awt.GridLayout; 7 import java.awt.event.ActionEvent; 8 import java.awt.event.ActionListener; 9 import java.awt.event.

Java 简单的登陆界面

刚接触Java没多久,可能讲的比较浅显,若有不妥之处还望指正~ ······创建一个登陆界面类 类中定义显示界面的函数,类型public void 名字 (我就叫它ShowUI吧): 一个界面由许多组件组成:包含显示.装饰的图片,账号框,密码框,复选框,按钮等等,这些组件不可能是集合显示的,所以需要一个载体--也称作顶级容器或者窗体,Java中这种类型叫做JFrame(在文件javax.swing.JFrame中,这个其实不用记,如果使用eclipse,可直接将鼠标放在JFrame处,点击就可以

JAVA简单Swing图形界面应用示例

package org.rui.hello; import javax.swing.JFrame; /** * 简单的swing窗口 * @author lenovo * */ public class HelloSwing { public static void main(String[] args) { JFrame frame=new JFrame("hello Swing"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLO

运用Swing以便在Java中实现简单的图形界面

Swing 是一个为 Java 设计的图形用户界面(GUI)工具包,同时也是 Java 基础类的一部分.本篇文章将运用 Swing 实现简单的图形界面,并输出 "Hello, World!"与"Welcome to Java!". HelloWorld.java 的代码如下所示: 1 import javax.swing.*; 2 3 public class HelloWorld{ 4 public static void main(String args[]){

java添加菜单项目

java添加菜单项目,布布扣,bubuko.com

JAVA 图形界面swing 创建按钮、文本域

package org.rui.swin; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; import org.rui.utils.SwingConsole; public class Button1 extends JFrame{ private JButton button1=new JButton("button1"), button2=new JButton(

java程序设计课期中考试——数据库的增删改查和简单的js界面

首先是设计思路,对于数据库的增删改查,我们借助Ecilipse来进行前端和后端的编写.Ecilipse是可以进行java web项目的操作的. 前端,我们选择用使用jsp,所谓的jsp就是可以嵌入其他语言的html,各种标识语言和html语法一致,但为了在本界面检测各种信息的正确性,需要嵌入java的语句进行判断. 对于数据库的增删改查,我们使用sql语句,并且导入了相应的mysql的jar包,方便我们用java对数据库进行操作. 整体来说,我们编写使用了MVC模式(model-view-con

java: BufferedReader简单的菜单

BufferedReader简单的菜单 Menu boolean flag; public Menu() { while(true) { this.show(); } } public void show() { System.out.println("--------菜单管理--------"); System.out.println(" [1] 创建菜单 "); System.out.println(" [2] 修改菜单 "); System

java之图形化界面(GUI)

一.概述 用户与计算机进行交换的方式有两种: GLI:Command lin User Interface(命令行用户接口),也就是常见的dos窗口,它需要记住一些常用的命令,操作不直观方便. GUI:Graphical User Interface(图形用户接口),用图形的方式,来显示计算机操作的界面,这样更方便直观. 这两种交换方式就对应两种交互界面:命令行界面和图形化界面. 现在图形化界面是主流. Java为GUI提供的对象都在java.awt和javax.swing这两个包中. Awt和