【发布时间】:2016-01-08 15:12:38
【问题描述】:
我正在尝试编写一个简单的游戏。我在一切的开始,我的目标是创建一个听我键盘的盒子。当试图在 JPanel 中绘制一个框时,JFrame 启动,然后在 3 秒内关闭。有人可以帮忙吗?我迷失在这种 Java Swing JFrame、JPanel 的情况中。
package abbygail;
public class Abbygail {
public static void main(String[] args) {
GUI gui = new GUI();
}
}
不同的类:
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);
}
}
不同的类:
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);
}
}
不同的类:
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));
}
}
【问题讨论】:
-
在没有相关代码的情况下很难猜出你有什么错误。请首先通过提出一个更好的问题来帮助我们帮助您,该问题显示相关代码,最好是 minimal reproducible example(请阅读链接),并显示和描述您的调试尝试的结果。
-
@HovercraftFullOfEels 当然......我真傻!
-
那么上面的代码在 3 秒内关闭?您是否看到任何异常或错误?我第一眼看到的主要问题是您使用空布局,应该避免这种情况,但这不会关闭 GUI。
-
啊,你从来没有给
setVisible(true);打电话!!!作为社区 wiki 回答,但该问题应作为重复项关闭。