Java swing超详细解析:点击不同的按钮切换对应的面板界面,Jpanel【诗书画唱】


package swing;
public class mains {
public static void main(String[] args) {
new swingJpanel();
}
}


package swing;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class swingJpanel extends JFrame{
public static JPanel jpRed,jpPink,jpBlueRightBottom1,jpGreenRightBottom2;
public static JButton btn1,btn2;
public swingJpanel(){
//swing中必要的代码内容:布局方式、大小、位置、释放资源、显示
this.setLayout(null);
this.setSize(700,700);
// 下面的代码的意思就是把位置设置为居中
this.setLocationRelativeTo(null);
jpRed=new JPanel();
jpPink=new JPanel();
jpBlueRightBottom1=new JPanel();
jpGreenRightBottom2=new JPanel();
jpRed.setLayout(null);//将jp1的布局方式也设置为空布局
btn1=new JButton("点赞界面");
btn2=new JButton("三连关注界面");
btn1.setBounds(100,30,120,90);
btn2.setBounds(250,30,120,90);
btn1.addActionListener(new swingJpanel_shijian(this));
btn2.addActionListener(new swingJpanel_shijian(this));
jpRed.add(btn1);jpRed.add(btn2);
jpRed.setBorder(BorderFactory.createLineBorder(Color.red));
jpPink.setBorder(BorderFactory.createLineBorder(Color.pink));
jpBlueRightBottom1.setBorder(BorderFactory.createLineBorder(Color.blue));
jpGreenRightBottom2.setBorder(BorderFactory.createLineBorder(Color.green));
jpRed.setBounds(10,10,600,150);
jpPink.setBounds(10,170,200,450);
jpBlueRightBottom1.setBounds(220, 170, 380, 450);
jpGreenRightBottom2.setBounds(220, 170, 380, 450);
//jp3.setBounds(220, 170, 380, 450);
this.add(jpRed);this.add(jpPink);
this.add(jpGreenRightBottom2);
this.add(jpBlueRightBottom1);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
//使用第二种方式(就是传窗口)得到页面的控件
class swingJpanel_shijian implements ActionListener{
public static swingJpanel ss;//现在的ss就是拥有控件的窗体了
public swingJpanel_shijian(swingJpanel s){
ss=s;
}
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
//判断用户点击的是那个按钮
String neirong=arg0.getActionCommand();//接收点击按钮的内容
if(neirong.equals("点赞界面")){
//JOptionPane.showMessageDialog(null,"点击了第一个按钮");
ss.jpBlueRightBottom1.setVisible(true);
ss.jpGreenRightBottom2.setVisible(false);
}else if(neirong.equals("三连关注界面")){
// JOptionPane.showMessageDialog(null,"点击了第二个按钮");
ss.jpBlueRightBottom1.setVisible(false);
ss.jpGreenRightBottom2.setVisible(true);
}
}
}


