【发布时间】:2014-07-03 05:45:16
【问题描述】:
我是新手,正在使用 Cay Hortsmann 的 Big Java 一书进行学习。对于早期项目之一,我正在制作一个带有 GUI 的井字游戏,但我无法让棋盘出现在 JPanel 上。它在框架中显示得很好,但是因为我想添加按钮,所以我尝试将板放在 JPanel 中,然后将 JPanel 添加到框架中。不幸的是,这不起作用。如果您能提供任何反馈,我将不胜感激:
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TicTacToePlayer {
private static final int FRAME_WIDTH = 400;
private static final int FRAME_HEIGHT = 400;
private int count = 0;
public static void main(String[] args) {
final JFrame frame = new JFrame();
// create board
final LinesComponent boardLines = new LinesComponent();
JPanel panel = new JPanel();
panel.add(boardLines);
frame.add(panel);
frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JComponent;
public class LinesComponent extends JComponent {
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
Lines boardLines = new Lines();
boardLines.draw(g2);
}
}
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.geom.Line2D;
import javax.swing.JComponent;
public class Lines extends JComponent {
public Lines() {
setPreferredSize(new Dimension(400, 400));
}
public void draw(Graphics2D g2) {
Line2D.Double leftVertLine = new Line2D.Double(150, 50, 150, 350);
Line2D.Double rightVertLine = new Line2D.Double(250, 50, 250, 350);
Line2D.Double topHorizLine = new Line2D.Double(50, 150, 350, 150);
Line2D.Double bottomHorizLine = new Line2D.Double(50, 250, 350, 250);
g2.draw(leftVertLine);
g2.draw(rightVertLine);
g2.draw(topHorizLine);
g2.draw(bottomHorizLine);
}
}
【问题讨论】:
标签: java swing jpanel tic-tac-toe