我的 3 个 JComponents 中只有 2 个显示在我的 JFrame 上
Only 2 of my 3 JComponents showing on my JFrame
我正在 java 中制作游戏,我只能向我的 jframe 添加 jcomponents。我已经尝试将它添加到 jpanel 和容器中。我什至尝试使 Border class 扩展 JPanel 而不是 JComponent。提前谢谢你。
问题图片
主要Class
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.geom.Area;
import java.awt.geom.Rectangle2D;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class game implements KeyListener {
public static JFrame window = new JFrame("Escape");
public static int velX = 0, velY = 0, count = 0;
public static Boolean paused = false, leftLock = false;
public Player player, playerTwo;
public static Movement playerMove;
public static Collision coll;
public static Area playerArea, playerTwoArea;
public Border b;
game() {
player = new Player();
playerTwo = new Player();
b = new Border(10,10);
window.setSize(1000, 500);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setResizable(false);
window.addKeyListener(this);
window.add(new Border(0,0));
window.add(new Border(200,200));
window.add(new Border(400,400));
window.setVisible(true);
playerMove = new Movement();
coll = new Collision();
}
public static void main(String[] args) {
new game();
}
}
我的边框Class
import java.awt.*;
import javax.swing.*;
public class Border extends JComponent {
private int x, y;
Border(int x, int y) {
this.x = x;
this.y = y;
}
public void paintComponent(Graphics g) {
g.setColor(Color.BLUE);
g.fillOvel(x,y,50,50);
}
}
如果您正在绘制任意(和许多)形状,您可能不应该为它们使用 JComponents。我只是在您的 window 中放置一个 JPanel,覆盖其上的 paintComponents 方法,并在该方法中为所有 Circles 绘制所有图形。
我正在 java 中制作游戏,我只能向我的 jframe 添加 jcomponents。我已经尝试将它添加到 jpanel 和容器中。我什至尝试使 Border class 扩展 JPanel 而不是 JComponent。提前谢谢你。
问题图片
主要Class
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.geom.Area;
import java.awt.geom.Rectangle2D;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class game implements KeyListener {
public static JFrame window = new JFrame("Escape");
public static int velX = 0, velY = 0, count = 0;
public static Boolean paused = false, leftLock = false;
public Player player, playerTwo;
public static Movement playerMove;
public static Collision coll;
public static Area playerArea, playerTwoArea;
public Border b;
game() {
player = new Player();
playerTwo = new Player();
b = new Border(10,10);
window.setSize(1000, 500);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setResizable(false);
window.addKeyListener(this);
window.add(new Border(0,0));
window.add(new Border(200,200));
window.add(new Border(400,400));
window.setVisible(true);
playerMove = new Movement();
coll = new Collision();
}
public static void main(String[] args) {
new game();
}
}
我的边框Class
import java.awt.*;
import javax.swing.*;
public class Border extends JComponent {
private int x, y;
Border(int x, int y) {
this.x = x;
this.y = y;
}
public void paintComponent(Graphics g) {
g.setColor(Color.BLUE);
g.fillOvel(x,y,50,50);
}
}
如果您正在绘制任意(和许多)形状,您可能不应该为它们使用 JComponents。我只是在您的 window 中放置一个 JPanel,覆盖其上的 paintComponents 方法,并在该方法中为所有 Circles 绘制所有图形。