public class Main extends JPanel implements Runnable {
private static final int WIDTH = 1000;
private static final int HEIGHT = 800;
TerranGenartor gen = new TerranGenartor();
public Main() {
setSize(WIDTH, HEIGHT);
gen.run();
}
public void paintComponents(Graphics g) {
repaint();
}
public void run() {
}
}
でエラーが発生します
TerranGenartor gen = new TerranGenartor();
私TerranGenartor
のクラス
public class TerranGenartor implements Runnable {
Main main = new Main();
Graphics g;
Random r = new Random();
int SMIN = 1;
int SMAX = 3;
int i = 0;
int num;
int x = 0;
int y = 0;
public Color grass = new Color(124, 252, 0);
public Color stone = new Color(190, 190, 190);
public Color dirt = new Color(139, 69, 19);
boolean Runn = false;
public void start() {
Runn = true;
System.out.println("Working...");
}
public TerranGenartor() {
Runn = true;
}
protected void paintComponent(Graphics g) {
g = main.getGraphics();
while (Runn) {
if (i <= 1000) {
num = r.nextInt(SMAX - SMIN + 1) + SMIN;
switch (num) {
case 1:
g.setColor(grass);
break;
case 2:
g.setColor(stone);
break;
case 3:
g.setColor(dirt);
break;
default:
g.setColor(grass);
break;
}
g.fillRect(x, y, 50, 50);
x += 50;
System.out.println(i);
System.out.println("X: " + x);
try {
Thread.sleep(15);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public void run() {
while (Runn) {
paintComponent(g);
}
}
}
このクラスはメインクラス( JPanel
extend)でペイントしないクラスです。いくつか試してみましたが、何も機能していないようです。
私The_Runner
のクラス
public class The_Runner {
Main main = new Main();
JFrame frame = new JFrame();
private static final int WIDTH = 1000;
private static final int HEIGHT = 800;
String TITLE = "Map gen.";
public The_Runner() {
frame.setSize(WIDTH, HEIGHT);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setTitle(TITLE);
frame.add(main);
}
public static void main(String[] args) {
The_Runner runner = new The_Runner();
}
}
このクラスは、それに準拠して実行するだけで、すべてが良いと思います。
これの問題は、クラスからペイントしたいときにTerranGenerator
機能しないことです。には何も表示されませんJPanel
。