Java I';我开始学习使用JFrame和JPanel。为什么我的代码不起作用?
我开始学习使用JFrame和JPanel。为什么我的代码不起作用? 出于某种原因,当我运行它时,JFrame确实会打开,但没有网格布局和边框 主要内容: 屏幕类:Java I';我开始学习使用JFrame和JPanel。为什么我的代码不起作用?,java,swing,user-interface,jframe,jpanel,Java,Swing,User Interface,Jframe,Jpanel,我开始学习使用JFrame和JPanel。为什么我的代码不起作用? 出于某种原因,当我运行它时,JFrame确实会打开,但没有网格布局和边框 主要内容: 屏幕类: package test; import java.awt.Color; import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.LineBorder; public c
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));
}
}
}
封装测试;
导入java.awt.Color;
导入java.awt.GridLayout;
导入javax.swing.JFrame;
导入javax.swing.JPanel;
导入javax.swing.border.LineBorder;
公共类屏幕扩展JFrame{
/**
*
*/
专用小区[][]arr=新小区[3][3];
公共屏幕()
{
JPanel面板=新JPanel(新网格布局(3,3,0,0));
对于(int i=0;i<3;i++){
对于(int j=0;j<3;j++){
panel.add(arr[i][j]=新单元格());
}
}
面板.设置顺序(新线条边框(颜色为黑色,1));
}
公共类单元扩展了JPanel{
私有字符串类型1;
公共单元格()
{
type1=“白色”;
设置顺序(新的线边框(颜色为红色,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 *****
}
}
//类名应以大写字母开头。
公共类屏幕扩展JFrame{
//类名应以大写字母开头。
专用小区[][]arr=新小区[3][3];
公共屏幕(){
JPanel面板=新JPanel(新网格布局(3,3,0,0));
对于(int i=0;i<3;i++){
对于(int j=0;j<3;j++){
panel.add(arr[i][j]=新单元格());
}
}
面板.设置顺序(新线条边框(颜色为黑色,1));
添加(面板);//****将面板添加到JFrame*****
}
}
您创建了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 *****
}
}
//类名应以大写字母开头。
公共类屏幕扩展JFrame{
//类名应以大写字母开头。
专用小区[][]arr=新小区[3][3];
公共屏幕(){
JPanel面板=新JPanel(新网格布局(3,3,0,0));
对于(int i=0;i<3;i++){
对于(int j=0;j<3;j++){
panel.add(arr[i][j]=新单元格());
}
}
面板.设置顺序(新线条边框(颜色为黑色,1));
添加(面板);//****将面板添加到JFrame*****
}
}
谢谢您的帮助@用户3672173:不客气。@PetterFriberg:我不确定我是否理解你的评论。我在Swing wiki上给出了答案,因为这似乎是一个微不足道的问题。@PetterFriberg:问题本身的质量很低,因为这是一个微不足道的问题,所以我怀疑它对未来的访问者会有多大帮助。谢谢你的帮助@用户3672173:不客气。@PetterFriberg:我不确定我是否理解你的评论。我在Swing wiki上给出了答案,因为这似乎是一个微不足道的问题。@PetterFriberg:问题本身的质量很低,因为这是一个微不足道的问题,因此我怀疑它对未来的访问者会有多大帮助。