Я пытаюсь написать простую игру. Я в начале всего, и моя цель - создать коробку, которая слушает мою клавиатуру. При попытке просто нарисовать ящик в JPanel, JFrame запускается, а затем закрывается через 3 секунды. Кто-то может помочь? Я потерялся в этой ситуации Java Swing JFrame, JPanel.JavaSwing Game: JFrame не отображается
package abbygail;
public class Abbygail {
public static void main(String[] args) {
GUI gui = new GUI();
}
}
Different класс:
package abbygail;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class GUI extends JFrame {
public GUI(){
setSize(640, 480);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Game_Board brd = new Game_Board();
setContentPane(brd);
getContentPane().setLayout(null);
}
}
Different класс:
package abbygail;
import javax.swing.JPanel;
public class Game_Board extends JPanel{
public Game_Board(){
setSize(640, 480);
Blue_Box blbx = new Blue_Box();
add(blbx);
}
}
Different класс:
package abbygail;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.RenderingHints;
import java.awt.geom.Rectangle2D;
import javax.swing.JPanel;
public class Blue_Box extends JPanel{
/**
*
* @param g
*/
private Point p1 = new Point(100, 100);
private Point p2 = new Point(540, 380);
public Blue_Box(){
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.blue);
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setStroke(new BasicStroke(8,BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL));
g2d.draw(new Rectangle2D.Double(p1.x, p1.y, 40, 30));
}
}
Это будет трудно помочь, угадать, какие ошибки у вас есть без соответствующего кода. Пожалуйста, сначала помогите нам помочь вам, задав лучший вопрос, который показывает соответствующий код, желательно [mcve] (пожалуйста, прочитайте ссылку), и это показывает и описывает результаты ваших попыток отладки. –
@ HovercraftFullOfEels конечно ... так немой! –
Значит, этот код выше закрывается через 3 секунды? Вы видите какие-либо исключения или ошибки? Основная проблема, которую я вижу при быстром обращении, - это использование нулевых макетов, чего следует избегать, но это не остановит графический интерфейс. –