我有一個奇怪的問題......按鈕不會顯示
我有一個JFrame,並增加了兩個JInternalFrame的
我加入一個JPanel到內部框架中的一個。
我用jpanel的鼠標監聽器寫了一個代碼,就像我放開鼠標時放置一個設備對象(一個類extendng jpanel)。
設備圖像顯示,但只有在我移動d內部框架或最大化它..爲什麼是達?
下面的代碼爲JPanel中被添加到內部框架中的一個......
public class Board extends JPanel implements MouseListener{
Device[] devices=new Device[10];
int X,Y,i=0;
int j=10;
Point p1,p2;
ImageIcon icon;
public Board()
{
setBackground(Color.WHITE);
this.addMouseListener(this);
setLayout(null);
}
public void mouseClicked(MouseEvent me){
}
public void mouseExited(MouseEvent me){
}
public void mouseEntered(MouseEvent me){
}
public void mousePressed(MouseEvent me){
}
public void mouseReleased(MouseEvent me){
X=me.getX();
Y=me.getY();
icon=new ImageIcon("E:\\java\\ecadpb\\src\\ecadpb\\device"+Layout1.clicked+".png");
devices[i].setBounds(X,Y,icon.getIconWidth(),icon.getIconHeight()+20);
devices[i].setVisible(true);
this.add(devices[i]);
this.repaint(X,Y,icon.getIconWidth(),icon.getIconHeight()+20);
i++;
}
}
}
以下是設備類..
public Device(Point pos,JLabel label,Rectangle r,int input,int output){
setVisible(true);
setBackground(Color.BLACK);
deviceNo=dno;
position=pos;
inputs=input;
outputs=output;
this.r=r;
label.setLayout(null);
setOpaque(false);
this.add(label);
label.addMouseListener(this);
dno++;
}
}
奇妙!我叫revalidate()方法,它解決了這個問題..非常感謝! – 2012-02-14 19:14:37
優秀 - 請將此答案標記爲接受:) – 2012-02-14 19:15:36