Adr*_*son 0 java swing visibility jframe jtextfield
它工作一小时前,但我必须对代码做了一些事情,我不知道是什么.我JTextField没有出现,但如果我将它们设置为可编辑,它们仍然存在.第一个JTextField确实出现了,但看起来很奇怪.有什么想法有什么不对吗?(我称之为JTextField"广场").大小= 10
package gui;
import javax.swing.*;
import engine.GameEngine;
import java.awt.*;
import java.util.*;
public class MineFieldGUI extends JFrame {
private GameEngine engine;
Square[][] field;
int size = 10;
public MineFieldGUI(GameEngine minefield) {
super("MineField");
this.engine = minefield;
this.size = minefield.getSize();
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setSize(300, 350);
Locale.setDefault(new Locale("en"));
setLayout(new BorderLayout());
JMenuBar menubar = new JMenuBar();
setJMenuBar(menubar);
JMenu helpMenu = new JMenu("Help");
menubar.add(helpMenu);
helpMenu.add(new HelpMenu(this));
//***THE MINE-FIELD***
JPanel panel = new JPanel(new GridLayout(size,size));
field = new Square[size][size];
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
field[i][j] = new Square(i, j);
panel.add(field[i][j]);
}
}
add(panel, BorderLayout.CENTER);
setVisible(true);
}
public void setColor(int x, int y){
field[x][y].setBackground(Color.lightGray);
}
public void setText(int x, int y, String text){
field[x][y].setText(text);
}
public String getText(int x, int y){
return field[x][y].getText();
}
}
Run Code Online (Sandbox Code Playgroud)
我的textFields:
package gui;
import java.awt.Color;
import javax.swing.JTextField;
public class Square extends JTextField {
int posX;
int posY;
public Square(int x, int y) {
super("");
posX = x;
posY = y;
this.setEditable(false);
this.setBackground(Color.lightGray);
}
public int getX(){
return posX;
}
public int getY(){
return posY;
}
}
Run Code Online (Sandbox Code Playgroud)