gpt4 book ai didi

java桌面应用程序

转载 作者:行者123 更新时间:2023-12-02 08:30:38 25 4
gpt4 key购买 nike

我正在netbeans中创建一个桌面应用程序,如果我选择一个新的菜单项,我希望在我的菜单栏中只有下面的面板更改而不是全帧。所以看起来我正在处理单个框架.谁能帮帮我

最佳答案

您可以使用Card Layout Managers来实现这样的功能。

这是完整的示例:

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

class JMenuExample extends JFrame implements ActionListener {

JMenu menu;
JPanel panelMain;
JPanel panelRed;
JPanel panelBlue;

CardLayout layout;

public void createUI() {
createMenu();
createPanels();

}

private void createPanels() {
panelMain = new JPanel();
layout = new CardLayout();
panelMain.setLayout(layout);

panelRed = new JPanel();
panelRed.setBackground(Color.RED);
panelMain.add(panelRed, "Red");
panelBlue = new JPanel();
panelBlue.setBackground(Color.BLUE);
panelMain.add(panelBlue, "Blue");

add(panelMain);

}

private void createMenu() {
menu = new JMenu("Change To");
JMenuItem miRed = new JMenuItem("Red");
miRed.addActionListener(this);
menu.add(miRed);
JMenuItem miBlue = new JMenuItem("Blue");
miBlue.addActionListener(this);
menu.add(miBlue);

JMenuBar bar = new JMenuBar();
bar.add(menu);

setJMenuBar(bar);

}

public static void main(String[] args) {

JMenuExample frame = new JMenuExample();
frame.createUI();
frame.setSize(150, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

}

@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() instanceof JMenuItem) {
JMenuItem mi = (JMenuItem) e.getSource();
layout.show(panelMain, mi.getText());

}
}
}

希望这有帮助

关于java桌面应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3486301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com