当前位置: 代码迷 >> J2SE >> swing搞了老半天,总是要鼠标经过才显示按钮
  详细解决方案

swing搞了老半天,总是要鼠标经过才显示按钮

热度:9   发布时间:2016-04-23 20:28:02.0
swing弄了老半天,总是要鼠标经过才显示按钮
本帖最后由 walkuere 于 2014-07-26 17:11:09 编辑
按了按钮后,画面切换,总是要鼠标经过,这个图像才显示。。。

Class Game extends JPanel
{
//主类
public static launch_Satellite toppanel;
public void repaint_manual()
{
    this.add(toppanel);
   toppanel.setVisible(true);
//   this.validate();
}
}
//别的类里的触发
public void actionPerformed(ActionEvent e) 
{
  Game.toppanel=new launch_Satellite(...);
  Game.repaint_manual();
}
public Class launch_Satellite extends JPanel
{
  this.setLayout(null);
   cardbtn1=new Cardbtn(n);
   cardbtn1.setBounds(x,y,width,height);
   cardbtn1.setVisible(true);
   this.add(cardbtn1);
   this.setBounds(x,y,width,height);
   this.setVisible(true);
   Game.toppanel.add(this);
}
public Class Cardbtn extends JPanel
{
    this.setLayout(null);
    CardImg cardimg;
    cardimg.setBounds(0, 0, width, height);
    this.setSize(width, height);
    this.add(cardimg);
    cardimg.setVisible(true);
}
public Cardimg extends JButton
{
}



------解决方案--------------------
我之前也遇到过这个问题。。。。
------解决方案--------------------
加上repaint,不然界面不会更新,你鼠标经过时触发了repaint才会更新界面,另外加上validate是可以的,因为界面布局可能发生变化
public void repaint_manual() {
    this.add(toppanel);
    toppanel.setVisible(true);
    this.validate();
    this.repaint();
}