我正在尝试对游戏进行编程,但我无法准确地制作我需要的大窗口。第一个 println 给我 720 和第二个 732 并且窗口真的比 720 大。我怎样才能使游戏显示精确到 720 像素高?
xCopterGame.java
import javax.swing.JFrame;
import java.awt.Dimension;
import java.awt.event.*;
public class xCopterGame extends JFrame implements MouseListener{
private static final long serialVersionUID = 1L;
Board panel=null;
public xCopterGame(){
panel = new Board();
setTitle("Pong");
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
panel.setPreferredSize(new Dimension(1280,720));
getContentPane().add(panel);
pack();
setLocationRelativeTo(null);
setVisible(true);
setResizable(false);
System.out.println(panel.getHeight());
panel.yCopter = getHeight()/2-15;
panel.addMouseListener(this);
addMouseListener(this);
}
public void mousePressed(MouseEvent e) {
panel.mousePressed(e);
}
public void mouseReleased(MouseEvent e) {
panel.mouseReleased(e);
}
public static void main(String[] args) {
new xCopterGame();
}
public void mouseClicked(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
}
Board.java
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import javax.swing.JPanel;
public class Board extends JPanel implements Runnable{
private static final long serialVersionUID = 1L;
Thread th=null;
boolean mousePressed = false, firstClick = false;
int yCopter;
public Board(){
th = new Thread(this);
th.start();
}
public void paint(Graphics g){
super.paint(g);
this.setBackground(Color.black);
g.setColor(Color.white);
g.fillRect(80, yCopter, 30, 30);
g.setColor(Color.gray);
for(int i=0; i<37; i++){
g.drawLine(0, i*20, this.getWidth(), i*20);
}
g.fillRect(100, 715, 30, 5);
g.fillRect(100, 0, 30, 5);
System.out.println(this.getHeight());
}
public void run() {
while(true){
if(mousePressed == true)
yCopter--;
if(mousePressed == false && firstClick == true)
yCopter++;
// repaint();
try {
Thread.sleep(10);
}
catch(InterruptedException ex) {
}
}
}
public void mousePressed(MouseEvent e) {
mousePressed = true;
firstClick = true;
}
public void mouseReleased(MouseEvent e) {
mousePressed = false;
}
}