public class MenuBarTest extends JMenuBar { public MenuBarTest() { JMenu menu = new JMenu("testMenu"); menu.addMenuListener(new menuTestActionListener()); this.add(menu); } private class menuTestActionListener implements MenuListener { public void menuCanceled(MenuEvent arg0) {
JOptionPane.showMessageDialog(null, "不能为空!", "消息!", 1);
}
});
即可
每个菜单分别显示不同的界面。请个例子。
public MenuBarTest() { JMenu menu = new JMenu("testMenu");
menu.addMenuListener(new menuTestActionListener());
this.add(menu);
} private class menuTestActionListener implements MenuListener {
public void menuCanceled(MenuEvent arg0) {
}
public void menuDeselected(MenuEvent arg0) {
}
public void menuSelected(MenuEvent arg0) {
JOptionPane.showMessageDialog(null, "不能为空!", "消息!", 1);
}
}
}
每个菜单分别显示不同的界面。 请个例子。
import java.awt.FlowLayout;import javax.swing.*;
import javax.swing.event.MenuEvent;
import javax.swing.event.MenuListener;public class MenuBarTest extends JMenuBar {
JFrame parent; JPanel panel1; JPanel panel2; public MenuBarTest(JFrame frame) { this.parent = frame; panel1 = new JPanel();
panel1.setLayout(new FlowLayout());
panel1.add(new JLabel("panel1"));
panel2 = new JPanel();
panel2.setLayout(new FlowLayout());
panel2.add(new JLabel("panel2")); JPanel panel = new JPanel();
panel.add(panel1);
panel.add(panel2); parent.getContentPane().add(panel); panel1.setVisible(false);
panel2.setVisible(false); JMenu menu = new JMenu("testMenu1");
JMenu menu2 = new JMenu("testMenu2"); menu.addMenuListener(new menuTestActionListener(panel, 1));
menu2.addMenuListener(new menuTestActionListener(panel, 2)); this.add(menu);
this.add(menu2);
} private class menuTestActionListener implements MenuListener {
Container com; int key; public menuTestActionListener(Container com, int key) {
this.com = com;
this.key = key;
} public void menuCanceled(MenuEvent arg0) {
} public void menuDeselected(MenuEvent arg0) {
} public void menuSelected(MenuEvent arg0) {
int count = com.getComponentCount();
//全部不可见
for (int i = 0; i < count; i++) {
com.getComponent(i).setVisible(false);
}
//对特定key设为可见
com.getComponent(key - 1).setVisible(true);
}
}
}把key和menu绑定,然后再设置key对应的界面可见即可
有个小bug点一下菜单时,菜单一直是按下状态。不弹起来。(这样在点菜单1后,直接移到菜单2不用单击也会切换)我先去查JDK(不一定能解决)。。希望楼上给出个解决方案。。
JTabbedPane是纵向的,有没办法横向创建?
http://zhidao.baidu.com/question/130901012.html