终于搞好了,应该行的
我的源代码:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class showPanel extends JFrame implements ActionListener{
JMenuBar menuBar=new JMenuBar();
JMenu menu=new JMenu("设置");
JMenuItem menuItem=new JMenuItem("显示");
JPanel paneUp=new JPanel();
JPanel paneDown=new JPanel();
int count=0;
public showPanel(){
super("写字本");
setBounds(300,250,400,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
menu.add(menuItem);
menuBar.add(menu);
menuItem.addActionListener(this);
BorderLayout border=new BorderLayout();
paneUp.setBackground(Color.black);
paneDown.setBackground(Color.red);
paneDown.setVisible(false);
getContentPane().add(paneUp,BorderLayout.CENTER);
getContentPane().add(paneDown,BorderLayout.CENTER);
this.setJMenuBar(menuBar);
this.show();
}
public void actionPerformed(ActionEvent e){
Object obj=e.getSource();
if(obj==menuItem){
count++;
if(count%2==1){
paneDown.show();
paneUp.setVisible(false);
}
else if(count%2==0){
paneDown.setVisible(false);
paneUp.show();
}
}
}
public static void main(String args[]){
showPanel sp=new showPanel();
sp.show();
}
}大致是这样吧:)
我的源代码:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class showPanel extends JFrame implements ActionListener{
JMenuBar menuBar=new JMenuBar();
JMenu menu=new JMenu("设置");
JMenuItem menuItem=new JMenuItem("显示");
JPanel paneUp=new JPanel();
JPanel paneDown=new JPanel();
int count=0;
public showPanel(){
super("写字本");
setBounds(300,250,400,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
menu.add(menuItem);
menuBar.add(menu);
menuItem.addActionListener(this);
BorderLayout border=new BorderLayout();
paneUp.setBackground(Color.black);
paneDown.setBackground(Color.red);
paneDown.setVisible(false);
getContentPane().add(paneUp,BorderLayout.CENTER);
getContentPane().add(paneDown,BorderLayout.CENTER);
this.setJMenuBar(menuBar);
this.show();
}
public void actionPerformed(ActionEvent e){
Object obj=e.getSource();
if(obj==menuItem){
count++;
if(count%2==1){
paneDown.show();
paneUp.setVisible(false);
}
else if(count%2==0){
paneDown.setVisible(false);
paneUp.show();
}
}
}
public static void main(String args[]){
showPanel sp=new showPanel();
sp.show();
}
}大致是这样吧:)
请问怎么删除BorderLayout.CENTER处的组件呢?
import java.awt.event.*;
import javax.swing.*;
public class showPanel extends JFrame implements ActionListener{
JMenuBar menuBar=new JMenuBar();
JMenu menu=new JMenu("ÉèÖÃ");
JMenuItem menuItem=new JMenuItem("ÏÔʾ");
JPanel paneUp=new JPanel();
JPanel paneDown=new JPanel();
int count=0;
public showPanel(){
super("д×Ö±¾");
setBounds(300,250,400,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
menu.add(menuItem);
menuBar.add(menu);
menuItem.addActionListener(this);
BorderLayout border=new BorderLayout();
paneUp.setBackground(Color.green);
paneDown.setBackground(Color.red);
paneDown.setVisible(false);
paneUp.setVisible(true);
getContentPane().add(paneUp,BorderLayout.CENTER);
this.setJMenuBar(menuBar);
this.show();
}
public void actionPerformed(ActionEvent e){
Object obj=e.getSource();
if(obj==menuItem){
count++;
if(count%2==1){
getContentPane().add(paneDown,BorderLayout.CENTER);
paneUp.setVisible(false);
paneDown.setVisible(true);
}
else if(count%2==0){
getContentPane().add(paneUp,BorderLayout.CENTER);
paneDown.setVisible(false);
paneUp.setVisible(true);
}
}
}
public static void main(String args[]){
showPanel sp=new showPanel();
sp.show();
}
}这样将楼上的大侠程序改了一下
将
getContentPane().add(paneUp,BorderLayout.CENTER);
放在事件中
而paneDown.setBackground(Color.red);可以正确显示红色
请问一下怎么把这个paneUp,从BorderLayout.CENTER移走啊?
getContentPane().remove(paneUp); /////////
repaint();
getContentPane().add(paneDown,BorderLayout.CENTER);
//paneUp.setVisible(false);
paneDown.setVisible(true);
}
else if(count%2==0){
getContentPane().remove(paneDown); ////
repaint();
getContentPane().add(paneUp,BorderLayout.CENTER);
//paneDown.setVisible(false);
paneUp.setVisible(true);
}
在同一个地方放置组件只能放一个,只认最后放的那一个,所以要在事件中不断地add