在java图形界面编程中,如下图在选择"增加图书"后会弹出一个增加图书的界面,现在想做成那种选择增加图书后,增加图书的界面就在JMenuBar下面的区域内显示,如下图红色部分。求解!
你看一下这个,是你要的效果,点不同的菜单换不同的颜色。
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Container;
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;
public class Demo extends JFrame {
CardLayout card = new CardLayout(0, 0);
JPanel panel = null;
Container main = null;
public Demo() {
main = getContentPane();
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu menu = new JMenu("welcome");
menuBar.add(menu);
JMenuItem menuItem = new JMenuItem("yellow");
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
card.show(main, "yellow");
}
});
menu.add(menuItem);
menuItem = new JMenuItem("red");
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
card.show(main, "red");
}
});
menu.add(menuItem);
getContentPane().setLayout(card);
panel = new JPanel();
panel.setBackground(Color.yellow);
add("yellow", panel);
panel = new JPanel();
panel.setBackground(Color.red);
add("red", panel);
// 窗口属性的设置
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setSize(300, 200);
setVisible(true);
}
public static void main(String[] args) {
new Demo();
}
}
使用CardLayout布局。
主面板设成CardLayout布局。
里面添加多个Panel
菜单击事件中,做Panel显示。