0
我正在netbeans中創建一個桌面應用程序,我希望在我的菜單欄中,如果我選擇一個新的菜單項,而不是隻有下面的面板更改不完整frame.so它會看起來像即時通訊工作任何人都可以幫我解決問題java桌面應用程序
我正在netbeans中創建一個桌面應用程序,我希望在我的菜單欄中,如果我選擇一個新的菜單項,而不是隻有下面的面板更改不完整frame.so它會看起來像即時通訊工作任何人都可以幫我解決問題java桌面應用程序
你可以用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());
}
}
}
希望這有助於
你能解釋一下?我很難理解「下面板」和「全幀」的含義。 – 2010-08-15 06:12:09