java中怎么点击一个JMenuItem然后跳转到多个并排显示的JTabbedPane的对应的一个啊?

亟待您的解决啊,高手些拜托了,希望实例参考或者详细说明,谢谢!!... 亟待您的解决啊,高手些拜托了,希望实例参考或者详细说明,谢谢!! 展开
 我来答
百度网友845f74e61
2013-04-27 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1620万
展开全部

 给你例子。

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();
}
}

追问
阁下的结构不错,值得鉴赏
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lecroy03
2013-04-27 · TA获得超过313个赞
知道小有建树答主
回答量:240
采纳率:100%
帮助的人:145万
展开全部
记录JTabbedPane每个Tab的位置,然后在JMenuItem的事件里,调用JTabbedPane.setSelectedIndex(int index)就可以了
追问
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);

            }

        });

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式