试过:框架.setVisible(true);
框架.validate();
我也没有背景图片;只是按钮是带图片按钮;
求大神!百度的都看过了
JFrame fr=new JFrame();
fr.setSize(400,500);
fr.setLayout(null);
fr.setVisible(true);
JButton[] pic =new JButton[5];
for(int i=0;i<3;i++){
pic[i]=new JButton((new ImageIcon("tupian/0.gif")));
pic[i].setBounds(100, 100+50*i, 50, 50);
fr.add(pic[i]);
Thread.sleep(500);
}
JFrame fr=new JFrame();
fr.setSize(400,500);
fr.setLayout(null);
fr.setVisible(true);
JButton[] pic =new JButton[3];
字数超出,贴在下面补充。。
大神,你说我该怎么改?
你写个JFrame1(),把原先fr的内容都给放进去
public class JFrame1 extends JFrame{
public static void main(String[] args) {
JFrame fr=new JFrame1();
fr.setVisible(true);
}
public JFrame1(){
this.setSize(400,500);//this可省略
setLayout(null);
setVisible(true);
JButton[] pic =new JButton[5];
for(int i=0;i<3;i++){
pic[i]=new JButton((new ImageIcon("tupian/0.gif")));
pic[i].setBounds(100, 100+50*i, 50, 50);
this.add(pic[i]);
Thread.sleep(500);
}
}
}
你试试,不行就按照上面的来
试了,还是不行,不过我把Thread.sleep(500);注释掉就可以了,,难道是这个的原因?。。。
追答。。。。。。不清楚,这还有影响刷新的功能么?没实际例子验证过也不知道,反正你怎样能用就怎么样吧。。。如果是真的thread的原因,那就多线程控制显示,跟下面说的一样来
这样是可以,但是,我每显示一个控件,窗口就会闪烁一次,怎样不闪,还能达到目的??
追答package test;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class GUIThread {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
final JFrame jf = new JFrame("TestGUIThread"); //需要在内部类使用,又不传入内部类,只有定义为终态
jf.setSize(300, 400);
jf.setLayout(new GridLayout(5,5)); // 设置样式为5*5的格子
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true); //先启动主线程显示主界面
//启动一个子线程加入按钮
new Thread(){
@Override
public void run() {
// TODO Auto-generated method stub
for (int i=0;i<10;i++){ //循环10次
try {
Thread.sleep(1000); //延时1秒
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
jf.add(new JButton(""+i)); //加入10个按钮
//下面这两句就是刷新界面的
jf.setVisible(false);
jf.setVisible(true);
}
}
}.start();
}
}
给你发个例子参照吧,你的代码不全,不好改。