有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java有两个JPanel而不是一个

我试图创建一个JFrame,并在其上放置5个JPanel。 问题是,顶部面板出现了两次。 这是Frame类:

package Chess;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import Chess.NorthPanel;
public class Frame {

    public static void main(String[] args) {
        drawpanels();
    }
public static void drawpanels() {
    JFrame board=new JFrame("Board");
    board.setLayout(new BorderLayout());
    board.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    board.setVisible(true);
    board.setSize(1000, 1000);
    board.getContentPane().setBackground(new Color(224,224,224));
    
    NorthPanel p1=new NorthPanel();
    SouthPanel p2=new SouthPanel(); 
    CenterPanel p3=new CenterPanel();
    JPanel p4=new JPanel();
    JPanel p5=new JPanel();

    p4.setBackground(Color.green);
    p5.setBackground(Color.red);
        
    board.add(p1, BorderLayout.NORTH);
    board.add(p2, BorderLayout.SOUTH);
    board.add(p3, BorderLayout.CENTER);
    board.add(p4, BorderLayout.EAST);
    board.add(p5, BorderLayout.WEST);
    board.validate();
    }   
}

这是NorthPanel课程:

package Chess;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class NorthPanel extends JPanel{
private static final long serialVersionUID = 1L;

public NorthPanel() {
    this.setBackground(new Color(128,128,128));
    JLabel label=new JLabel();
    label.setIcon(new ImageIcon("images/rlt.png"));
    this.add(label);
    }
}

(SouthPanel和CenterPanel还有另外两个类。)

结果是:

https://i.stack.imgur.com/KXBon.png

为什么有两辆车? 这个代码还有什么其他问题


共 (0) 个答案