java - Jpanel 未显示在 JFrame 中

标签 java swing

我正在编写此代码,以便它将添加 JPanel 并在单击时更改背景颜色。运行JFrame类的类中的代码是:

import javax.swing.*;

public class project9Driver {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Project9 w=new Project9();
        w.setVisible(true);
        w.setSize(900, 900);
    }

}

Project9 类是:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Random;

public class Project9 extends JFrame implements MouseListener{        
    JPanel panes[]=new JPanel[64];
    public void Project9(){
        JFrame mainFrame=new JFrame();
        mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container mainBox=mainFrame.getContentPane();
        mainBox.setLayout(new GridLayout(8,8));
        mainBox.addMouseListener(this);
        for(int i=0;i<=63;i++){
            panes[i].setBackground(Color.WHITE);
            mainBox.add(panes[i]);
        }        
    }
    public void paint(Graphics g){
        super.paintComponents(g);
    }
    public void mouseClicked(MouseEvent e) {
        for(int i=0;i<=64;i++){
            if(e.getSource()==panes[i]){
                Random xR=new Random();
                Random yR=new Random();
                Random zR=new Random();
                int x=xR.nextInt(255),y=yR.nextInt(255),z=zR.nextInt(255);
                panes[i].setBackground(new Color(x,y,z));
            }
        }
    }


}

每当我尝试运行该程序时,它都会出现一个空的 GUI 窗口。我错过了什么?

最佳答案

Project9 是一个框架,您正在 Project9 内创建另一个框架,但没有显示它,因此,只有 Project9 (w) 绘制在屏幕上,但它没有任何内容。

您必须使用“this”而不是另一个框架。

public class Project9 extends JFrame implements MouseListener{        
    JPanel panes[]=new JPanel[64];
    public void Project9(){
        //JFrame mainFrame=new JFrame(); delete this.
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container mainBox= this.getContentPane();

关于java - Jpanel 未显示在 JFrame 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29678275/

相关文章:

Java 集合 : Is Object Added Directly Added To Collection?

java - 在 swing 应用程序中显示网页

java - 使用 Java 创建自定义 UI 元素

java - CardLayout 更新信息时删除旧面板

java - 异常: adding a window to a container.如何解决?

java - @Email 验证注释导致部署中出现 NullPointerException

java - 与 RelativeLayout 底部对齐的按钮被截断

java - 如何在 if/else 语句中检查整数且小于或等于 100

java - JTextPane 中的可点击文本

java - 如何让多个键绑定(bind)同时工作?