Java 如何确保我的形象赢得';不要被画在我的框架之外?
我正在做一个项目,在一个600x600的窗口中随机抽取一个64x64红色的球,它会从“墙”上移动和反弹。(窗口边框)我的红色球是一个在JPanel上绘制的JLabel。我正在使用挫折。我相信您在setBounds中输入的数字将是您正在绘制的图像的左上角。所以我认为图像的随机坐标应该是0到536(即600-64)。但是,当我这样做时,只显示图像的一半。另一半无法看到,因为它位于JFrame之外。如何使其在运行时始终100%可见Java 如何确保我的形象赢得';不要被画在我的框架之外?,java,swing,graphics,Java,Swing,Graphics,我正在做一个项目,在一个600x600的窗口中随机抽取一个64x64红色的球,它会从“墙”上移动和反弹。(窗口边框)我的红色球是一个在JPanel上绘制的JLabel。我正在使用挫折。我相信您在setBounds中输入的数字将是您正在绘制的图像的左上角。所以我认为图像的随机坐标应该是0到536(即600-64)。但是,当我这样做时,只显示图像的一半。另一半无法看到,因为它位于JFrame之外。如何使其在运行时始终100%可见 import java.awt.*; import javax.sw
import java.awt.*;
import javax.swing.*;
public class BallBounce {
public JFrame frame;
public JPanel panel;
public JLabel ball;
public ImageIcon ballIcon = new ImageIcon("images/ball.png");
public int bpx; //ballpositionx
public int bpy;
public int bsx = 1; //ballspeedx
public int bsy = 1;
public BallBounce() {
frame = new JFrame();
frame.setTitle("Ball Bounce");
frame.setSize(600, 600);
frame.setResizable(false);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setVisible(true);
panel = new JPanel();
panel.setLayout(null);
panel.setSize(600,600);
ball = new JLabel();
ball.setIcon(ballIcon);
bpx = (int)(Math.random()*536)+0;
bpy = (int)(Math.random()*536)+0;
ball.setBounds(bpx, bpy, 64, 64);
panel.add(ball);
frame.add(panel);
frame.revalidate();
}
public static void main(String args[]) {
BallBounce bb = new BallBounce();
}
}/P>< P>因为球的中心线正好在它的中间-通过将半径加到设置界限来弥补差异——只是一个快速答案< /P>改变球检查的边界…只需将屏幕剪辑处的边界移回ballso立根圆周的一半(bpx+半径,bpy+半径,64,64)?