所以我制作了一个程序,它应该在屏幕上显示一系列14 X 14长的字符串。它曾经在你改变大小时工作,但是我把setResizable设为false,所以现在我可以 看不到任何东西。我感谢你的所有帮助。这是代码:
private Color textColor = Color.BLACK;
private Random random = new Random();
String[][] letters = new String[14][14];
float fontsize = Toolkit.getDefaultToolkit().getScreenSize().width / 50;
public void paint(Graphics g) {
g.setColor(textColor);
setFont(getFont().deriveFont(fontsize));
for (int i = 0; i < 13; i++) {
for (int j = 0; j < 13; j++) {
if ((int) (Math.random() * 100) > 97) {
letters[i][j] = "w";
textColor = Color.BLUE;
System.out.println("asd");
} else {
letters[i][j] = "l";
textColor = new Color(0, 100, 0);
}
g.drawString(letters[i][j], i * 34, j * 34);
if (i >= 99)
System.out.println("asdasdasd");
}
}
}
@Override
public void actionPerformed(ActionEvent e) {
// repaint();
}
public mainClass() {
setSize(Toolkit.getDefaultToolkit().getScreenSize().width / 3,
Toolkit.getDefaultToolkit().getScreenSize().width / 3 + 80);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Timer timer = new Timer(500, this);
timer.setInitialDelay(0);
timer.start();
setResizable(false);
this.setBackground(Color.BLACK);
setVisible(true);
}
public static void main(String[] args) {
mainClass myWindow = new mainClass();
}
答案 0 :(得分:0)
如果您通过该计划(而不是用户)重新调整JFrame
大小,那么您可以尝试pack()
,即使setResizable
也可以使用false
设为{{1}}。
如果您不想允许任何类型的重新调整大小,那么您需要进一步解释您的问题。