我想在多个JFrame面板中插入图片,一下是代码。但是这样只有第一个面板可以显示图片和按钮,跳转到第二个面板后图片和按钮都无法显示,为什么呢?还有怎样往多个面板中插入图片呢?
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Trans {
public static void main(String[] args) {
new Window("window");
}
}
class Window extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
JButton enterButton,closeButton;
JPanel blackPanel,yellowPanel;
JLabel label,labell;
public Window(String s) {
super(s);
super.getContentPane().setLayout(null);
//黑色面板
blackPanel = (JPanel)super.getContentPane();
blackPanel.setOpaque(false);
blackPanel.setBackground(Color.black);
ImageIcon icon1 = new ImageIcon("res/1.jpg");
label = new JLabel(icon1);
label.setBounds(0,0,1280,720);
icon1.setImage(icon1.getImage().getScaledInstance(1280,720,Image.SCALE_DEFAULT));
blackPanel.add(label,Integer.valueOf(Integer.MIN_VALUE));
//登录按钮
enterButton = new JButton("登录");
enterButton.setBounds(300,400,300,100);
blackPanel.add(enterButton);
enterButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
blackPanel.setVisible(false);
yellow();
}
});
//设置窗口风格
super.setBounds(123,30,1290,725);
super.setVisible(true);
super.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
//黄色面板
public void yellow() {
yellowPanel = (JPanel) super.getContentPane();
yellowPanel.setOpaque(false);
yellowPanel.setLayout(null);
yellowPanel.setBounds(0,0,1280,720);
//退出按钮
closeButton = new JButton("退出");
closeButton.setBounds(300,400,300,100);
yellowPanel.add(closeButton);
//插入图片
ImageIcon icon2 = new ImageIcon("res/凯尔希.jpg");
labell = new JLabel(icon2);
labell.setBounds(0,0,1280,720);
icon2.setImage(icon2.getImage().getScaledInstance(1280,720,Image.SCALE_DEFAULT));
yellowPanel.add(labell,Integer.valueOf(Integer.MIN_VALUE));
}
}
gpt说一个JFrame只能有一个内容面板,你需要使用不同的组件容器来实现在不同的面板中插入图片