java jlable添加gif_java – 在模式中动态添加JLabel但最后一个...

您正在使用绝对定位/ null布局,但您没有将布局设置为null.默认的jframe布局是边框布局.

添加此行

jf.setLayout(null);

并在添加所有组件之后调用jframe的revalidate()和repaint()方法.

public class Booking2 {

public static void main(String[] args) {

JFrame jf = new JFrame();

jf.setVisible(true);

jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);

jf.setLayout(null); // this is important

jf.setSize(700, 400);

int c1 = 40;

int count = 0, count2 = 0, count3 = 0, count4 = 0, x;

JLabel[] jl = new JLabel[c1];

for (int i = 0; i <= c1 - 1; i++) {

jl[i] = new JLabel();

if (i <= 9) {

x = 25 * count;

jl[i].setBounds(x, 50, 20, 20);

count++;

}

if (i >= 10 && i <= 19) {

x = 25 * count2;

jl[i].setBounds(x, 80, 20, 20);

count2++;

}

if (i >= 20 && i <= 29) {

x = 25 * count3;

jl[i].setBounds(x, 110, 20, 20);

count3++;

}

if (i >= 30 && i <= 39) {

x = 25 * count4;

jl[i].setBounds(x, 130, 20, 20);

count4++;

}

//jl[i].setIcon(new ImageIcon(Booking2.class.getResource("booked.png")));

jl[i].setText("O");

jf.add(jl[i]);

}

jf.revalidate();

jf.setVisible(true);

}

}

产量

注意

1)你应该避免空布局.使用布局GRID布局似乎对你的情况有好处.如果这是一种游戏/动画你应该看看这些例子https://www3.ntu.edu.sg/home/ehchua/programming/java/J8a_GameIntro-BouncingBalls.html.你可以使用paintComponent()方法绘制这个网格在一个高效的jpanel中,你可以绘制任何一种模式.如果你制作一个大网格,例如100 * 100使用jlables,这是不好的

2)最好将组件添加到jpanel而不是直接添加到jframe.你可以使用setContentPane()方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值