Swing動(dòng)態(tài)刷新常用代碼
本文介紹Swing動(dòng)態(tài)刷新常用代碼,以及介紹在Swing的事件監(jiān)聽(tīng)中動(dòng)態(tài)添加組件,但是JFrame卻不會(huì)動(dòng)態(tài)顯示,只有變大變小才會(huì)顯示。
Swing動(dòng)態(tài)刷新
可能大家都試過(guò)在Swing的事件監(jiān)聽(tīng)中動(dòng)態(tài)添加組件,但是JFrame卻不會(huì)動(dòng)態(tài)顯示,只有變大變小(實(shí)際是重畫(huà)了)才會(huì)顯示,有些人說(shuō)repaint,updateUI可以,但是我試了一下還是不行。于是用validate...發(fā)現(xiàn)可以了,下面是Swing動(dòng)態(tài)刷新代碼:
- import java.awt.Container;
- import java.awt.FlowLayout;
- import javax.swing.JButton;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JPanel;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- public class Ss extends JFrame{
- Container con=this.getContentPane();
- JButton jb1=new JButton("jb1");
- JButton jb2=new JButton("jb2");
- JLabel jl1=new JLabel("jl1");
- FlowLayout gly=new FlowLayout();
- JPanel jp=new JPanel(gly);
- public Ss(){
- con.add(jp);
- jp.add(jb1);
- jp.add(jb2);
- MyListener ml=new MyListener();
- jb1.addMouseListener(ml);
- this.setSize(200,200);
- this.setVisible(true);
- }
- private class MyListener extends MouseAdapter{
- @Override
- public void mouseClicked(MouseEvent e) {
- // TODO Auto-generated method stub
- try
- {
- //主要就是下面的invalidate和validate
- //當(dāng)然,用jp來(lái)invalidate和validatae也是可以的
- con.invalidate();
- JButton jb3=new JButton("jb3");
- jp.add(jb3);
- con.validate();
- }
- catch (Exception ex)
- {
- ex.printStackTrace();
- }
- }
- }
- public static void main(String s[]){
- Ss sss=new Ss();
- sss.setVisible(true);
- }
- }
以上是Swing動(dòng)態(tài)刷新希望大家有用。
【編輯推薦】
責(zé)任編輯:佚名
來(lái)源:
騰訊科技