상자를 다시 칠해 JFrame에서 이동하려고하는데, 어떤 이유로 작동하지 않을 것이라고 생각하지 않습니다. 그 아마 아마 뭔가 바보 알아하지만 내 수업은 다음과 같습니다 (또한 그 엉덩이에 통증이 서식 ... 미안) 그것은 frame.add (사각형) 라인에 오류를 제공합니다.이상한 JFrame 문제
import javax.swing.JFrame;
import javax.swing.WindowConstants;
public class Runner extends JFrame{
final static int FRAME_WIDTH = 1000;
final static int FRAME_HEIGHT = 600;
final static int BOX_WIDTH = 50;
final static int BOX_HEIGHT = 50;
public static void main (String[] args){
JFrame frame = new JFrame();
frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
frame.setTitle("Animation");
frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
frame.setVisible(true);
Component square = new Component();
Dimensions.setBoxDimensions(BOX_WIDTH, BOX_HEIGHT);
frame.add(square);
frame.setVisible(true);
for (int i = 0; i < 100; i++){
Dimensions.setPosition(i,i);
square.repaint();
frame.setVisible(true);
}
}
}
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
public class Component extends JFrame{
public void paintComponent (Graphics g){
Graphics2D g2 = (Graphics2D) g;
g2.fillRect(Dimensions.xPos, Dimensions.yPos, Dimensions.boxWidth, Dimensions.boxHeight);
}
}
public class Dimensions {
public static int boxHeight = 50;
public static int boxWidth = 50;
public static int xPos = 0;
public static int yPos = 0;
public static void setBoxDimensions(int width, int height){
boxHeight = height;
boxWidth = width;
}
public static void setPosition(int x, int y){
xPos = x;
yPos = y;
}
}
그래서 JPanel 패널 = 새 JPanel(); 다음 panel.add (square); ?? – Evan
도움이 될 몇 가지 예를 추가했습니다. –
클래스 구성 요소에 이름을 지정하면 java.awt.Component가 있기 때문에 일부 문제가 발생할 수 있습니다. 그래서 편의상 이름을 MyComponent로 변경했습니다. –