java中怎么点击一个JMenuItem然后跳转到多个并排显示的JTabbedPane的对应的一个啊?
给你例子。
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
public class ColorApp extends JFrame implements ActionListener {
JMenuBar menubar = new JMenuBar();
String[] names = { "RED", "YELLOW", "BLUE", "GREEN" };
Color[] colors = { Color.RED, Color.YELLOW, Color.BLUE, Color.GREEN };
JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
public ColorApp() {
setJMenuBar(menubar);
JMenu menu = new JMenu("change");
menubar.add(menu);
getContentPane().add(tabbedPane, BorderLayout.CENTER);
for (int i = 0; i < colors.length; i++) {
JMenuItem menuItem = new JMenuItem(names[i]);
menuItem.addActionListener(this);
menuItem.setActionCommand("" + i);
menu.add(menuItem);
JPanel panel = new JPanel();
panel.setBackground(colors[i]);
tabbedPane.addTab(names[i], panel);
}
setSize(600, 400);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new ColorApp();
System.out.println(Color.RED);
}
@Override
public void actionPerformed(ActionEvent e) {
int index = Integer.parseInt(e.getActionCommand());
tabbedPane.setSelectedIndex(index);
repaint();
}
}
阁下的结构不错,值得鉴赏
tab的位置不是默认从左到右0,1,2。。。吗?
要怎样记录JTabbedPane每个Tab的位置,给个演示代码,谢谢
不能对类型 JTabbedPane 中的非静态方法 setSelectedIndex(int)进行静态引用
恩,我的意思是,你在点JMenuItem的时候,要知道你要跳转的Tab的位置。
“不能对类型 JTabbedPane 中的非静态方法 setSelectedIndex(int)进行静态引用”——说明你在一个静态方法中调用的tabbedPane.setSelectedIndex(int index)方法
tabbedPane.addTab("常规", new JPanel());
tabbedPane.addTab("编辑器", new JPanel());
tabbedPane.addTab("其他", new JPanel());
nomarlMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tabbedPane.setSelectedIndex(0);
}
});
editorMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tabbedPane.setSelectedIndex(1);
}
});
othersMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tabbedPane.setSelectedIndex(2);
}
});