gpt4 book ai didi

java - 我开始学习使用 JFrame 和 JPanel。为什么我的代码不起作用?

转载 作者:行者123 更新时间:2023-12-01 21:52:46 26 4
gpt4 key购买 nike

我开始学习使用 JFrame 和 JPanel。为什么我的代码不起作用?由于某种原因,当我运行它时,JFrame 确实打开了,但没有网格布局,也没有边框。

主要:

package test;

import javax.swing.JFrame;

public class ht {
public static void main(String[] args) {


JFrame frame = new screen();
frame.setSize(600, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}

屏幕类别:

package test;

import java.awt.Color;
import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.LineBorder;

public class screen extends JFrame {

/**
*
*/

private cell[][] arr = new cell[3][3];

public screen()
{

JPanel panel = new JPanel(new GridLayout(3, 3, 0, 0));



for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
panel.add(arr[i][j] = new cell());
}
}



panel.setBorder(new LineBorder(Color.black, 1));
}

public class cell extends JPanel{

private String type1;

public cell()
{
type1 = "white";
setBorder(new LineBorder(Color.red,1));
}
}
}

问题是什么?

最佳答案

您创建了 JPanel 面板,但将其添加到任何内容中。您应该将其添加到 JFrame 中才能显示。

// class name should start with an upper case letter.
public class Screen extends JFrame {

// class name should start with an upper case letter.
private Cell[][] arr = new Cell[3][3];

public Screen() {

JPanel panel = new JPanel(new GridLayout(3, 3, 0, 0));

for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
panel.add(arr[i][j] = new Cell());
}
}

panel.setBorder(new LineBorder(Color.black, 1));


add(panel); // ***** add panel to the JFrame *****
}
}

关于java - 我开始学习使用 JFrame 和 JPanel。为什么我的代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34908545/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com