【问题标题】:Only 2 of my 3 JComponents showing on my JFrame我的 3 个 JComponent 中只有 2 个显示在我的 JFrame 上
【发布时间】:2017-08-18 19:45:07
【问题描述】:

我正在用 java 制作游戏,但我只能在我的 jframe 中添加 jcomponents。我已经尝试将它添加到 jpanel 和容器中。我什至尝试让 Border 类扩展 JPanel 而不是 JComponent。提前谢谢你。

问题图片

主类

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();
    }
}

我的边框类

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);
    }
}

【问题讨论】:

  • 我没有看到您在哪里指定布局管理器...您使用的是空布局吗?
  • 是的,我正在使用它。

标签: java jframe jcomponent


【解决方案1】:

如果您正在绘制任意(和许多)形状,您可能不应该为它们使用 JComponents。我只需在您的窗口中放置一个 JPanel,覆盖其上的 paintComponents 方法,然后在该方法中为您的所有 Circles 完成所有绘图。

【讨论】:

  • 如果我这样做,我将如何移动玩家和敌人?我打算让它成为多人游戏。
  • 我不只是想画一个圆圈并保持在那里。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-02
相关资源
最近更新 更多