JavaSwing中的下拉式菜单...
菜单是GUI中最常⽤的组件,菜单不是Component类的⼦类,不能放置在普通容器中,不受布局管理器的约束,只能放置在菜单栏中.
菜单组件由菜单栏 (MenuBar)、菜单(Menu)和菜单项(MenuItem)三部分组成。⼀个菜单栏由若⼲个菜单组成,⼀个菜单⼜由若⼲个菜单项组成。⼀般菜单栏放 Frame 窗⼝中,只要调⽤ Frame 类的 setMenuBar()⽅法即可。
常⽤的菜单有:下拉式菜单和弹出式菜单(独⽴显⽰,可出现在任意地⽅).
⼀:下拉式菜单的创建步骤:
1.创建⼀个菜单栏。
2.调⽤ Frame 的 setMenuBar()⽅法将菜单栏加⼊ Frame 中。
3.分别创建若⼲个 Menu 对象,并加⼊ MenuBar 中。
4.对于每个 Menu 对象,分别创建若⼲个 MenuItem 对象,并加⼊ Menu 中。
实例:
复制代码代码如下:
import java.awt.*;
public class MenuDemo {
Frame f;
MenuBar mb;
Menu menuFile;
MenuItem mItemNew, mItemOpen, mItemSave;
MenuDemo() {
f = new Frame("我的菜单实例");
f.setBounds(300, 100, 400, 300);
mb = new MenuBar(); // 创建菜单栏MenuBar
menuFile = new Menu("⽂件");
mItemNew = new MenuItem("新建");
mItemOpen = new MenuItem("打开");
menuFile.add(mItemNew);
mItemSave = new MenuItem("保存");
menuFile.add(mItemOpen);
// 加⼊分割线
menuFile.addSeparator();
menuFile.add(mItemSave);
mb.add(menuFile);
/
/ 菜单栏中加⼊“⽂件”菜单
// setMenuBar:将此窗体的菜单栏设置为指定的菜单栏。
f.setMenuBar(mb);
f.setVisible(true);
}
public static void main(String[] args) {
new MenuDemo();
}
}
有图有真相:(下拉的菜单项⽆法截图)
⼆:弹出式菜单的创建步骤:
1.先建⽴最基本的JFrame框架.
2.创建右键弹出式菜单(JPopupMenu)和添加的菜单项(JMenuItem).
3.使⽤add⽅法和insert⽅法向JPopupMenu中添加或者插⼊.
4.通过调⽤弹出式菜单触发器对应的show⽅法来显⽰弹出式菜单,检查所有的MouseEvent事件,看其是否是弹出式菜单触发器,然后在合适的时候显⽰弹出式菜单
实例:
复制代码代码如下:
javaswing实现购买import java.awt.event.*;
import javax.swing.*;
public class JPopMenu_Demo extends JFrame {
// 弹出菜单的实现,弹出菜单是⼀个可弹出并显⽰⼀系列选项的⼩窗⼝
JPopupMenu popupMenu;
public JPopMenu_Demo() {
super("右键弹出式菜单"); // 调⽤⽗类构造函数
// 实例化弹出菜单
popupMenu = new JPopupMenu();
// 增加菜单项到菜单上
popupMenu.add(new JMenuItem("菜单项"));
popupMenu.add(new JButton("按钮"));
popupMenu.add(new JLabel("标签"));
myEvents();
setSize(350, 300); // 设置窗⼝⼤⼩
setLocation(400, 200);
setVisible(true); // 设置窗⼝为可视
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭窗⼝时退出程序
}
private void myEvents() {
// 窗⼝的⿏标事件处理
addMouseListener(new MouseAdapter() {
// 点击⿏标
public void mousePressed(MouseEvent event) {
// 调⽤triggerEvent⽅法处理事件
triggerEvent(event);
}
/
/ 释放⿏标
public void mouseReleased(MouseEvent event) {
triggerEvent(event);
}
private void triggerEvent(MouseEvent event) { // 处理事件
// isPopupTrigger():返回此⿏标事件是否为该平台的弹出菜单触发事件。
if (event.isPopupTrigger())
// 显⽰菜单
popupMenu.Component(), X(),
}
});
}
public static void main(String args[]) {
new JPopMenu_Demo();
}
}
有图有真相(不过挺丑)
三:选项卡窗体:
1.基本说明:
2.常⽤⽅法:
我们把多个JPanel的对象添加到 JTabbedPanel中去。然后再
JTabbedPanel 添加到窗体,代码如下:
复制代码代码如下:
JTabbedPane jp=new JTabbedPane(JTabbedPane.LEFT) ; //设置选项卡在坐标JPanel p1=new JPanel() ;
JPanel p2=new JPanel() ;
JPanel p3=new JPanel() ;
JPanel p4=new JPanel() ; //创建多个容器
jp.add("窗体1", p1) ;
jp.add("窗体2", p2) ;
jp.add("窗体3", p3) ;//添加⼦容器,并且为选项卡添加名字
this.add(jp,BorderLayout.CENTER); //将选项卡窗体添加到主窗体上去
3.代码⽰例和截图:
复制代码代码如下:
import java.awt.*;
import javax.swing.*;
/**
* <p>Title: 选项卡演⽰</p>
* <p>Description: 这⾥是⼀个选项卡演⽰,点击不同的卡⽚,显⽰的内容不同</p> */
public class JTabbedPaneDemo1 extends JPanel {
public JTabbedPaneDemo1() {
super(new GridLayout(1, 1));
ImageIcon icon = createImageIcon("images/MyIcon.gif");
JTabbedPane tabbedPane = new JTabbedPane();
Component panel1 = makeTextPanel("#第⼀个卡⽚#");
tabbedPane.addTab("One", icon, panel1, "第⼀个卡⽚提⽰信息!");
tabbedPane.setSelectedIndex(0);
Component panel2 = makeTextPanel("##第⼆个卡⽚##");
tabbedPane.addTab("Two", icon, panel2, "第⼆个卡⽚提⽰信息!");
Component panel3 = makeTextPanel("###第三个卡⽚###");
tabbedPane.addTab("Three", icon, panel3, "第三个卡⽚提⽰信息!");
Component panel4 = makeTextPanel("####第四个卡⽚####");
tabbedPane.addTab("Four", icon, panel4, "第四个卡⽚提⽰信息!");
// 将选项卡添加到panl中
add(tabbedPane);
}
/**
* <br>
* ⽅法说明:添加信息到选项卡中 <br>
* 输⼊参数:String text 显⽰的信息内容 <br>
* 返回类型:Component 成员对象
*/
protected Component makeTextPanel(String text) {
JPanel panel = new JPanel(false);
JLabel filler = new JLabel(text);
filler.setHorizontalAlignment(JLabel.CENTER);
panel.setLayout(new GridLayout(1, 1));
panel.add(filler);
return panel;
}
/**
* <br>
* ⽅法说明:获得图⽚ <br>
* 输⼊参数:String path 图⽚的路径 <br>
* 返回类型:ImageIcon 图⽚对象
*/
protected static ImageIcon createImageIcon(String path) {
/
/ java.URL imgURL = Resource(path);
if (path != null) {
return new ImageIcon(path);
} else {
System.out.println("Couldn't find file: " + path);
return null;
}
}
public static void main(String[] args) {
// 使⽤Swing窗体描述
// JFrame.setDefaultLookAndFeelDecorated(true);
try {
UIManager.SystemLookAndFeelClassName()); } catch (Exception e) {
}
// 创建窗体
JFrame frame = new JFrame("TabbedPaneDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 200);
frame.setVisible(true);
}
}
运⾏截图:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论