2016-04-28 50 views
1

First time called的JDialog變小,每次得到處置/調用setVisible(真)

enter image description here

[10時間稱爲] [3]

enter image description here

多個交互後的JDialog結束進入浮動標題欄。調整它的大小「重置」Cicle。來自JPanel的代碼稱爲JDialog。不知道是什麼讓它變小,只是在發送這個按鈕後才注意到它。

public class Mant_presentacion extends JPanel implements ActionListener{ 

Boton buscar_envase = new Boton(this, new ImageIcon("lupa.png")); 
Mant_env envase = new Mant_env(); 
public final JFrame OWNER; 

public Mant_presentacion(JFrame OWNER){ 
    this.OWNER = OWNER; 
    setLayout(null); 
    setBackground(Color.WHITE); 
    d = new JDialog(OWNER, "Seleccionar envase", true); 
    buscar_envase.setBounds(500, 50, 180, 30); 
    buscar_envase.setText(" Examinar envases"); 
    buscar_envase.addActionListener(this); 
} 

JDialog d; 

@Override 
public void actionPerformed(ActionEvent e) { 
    d.setSize(envase.getWidth(), envase.getHeight()); 
    d.add(envase); 
    d.setLocationRelativeTo(null); 
    d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); 
    d.setVisible(true); 
} 
} 
+0

'setLayout(null);'Java GUI必須在不同的操作系統上工作',屏幕大小,屏幕分辨率等等,使用不同語言環境中的不同PLAF。因此,它們不利於像素的完美佈局。請使用佈局管理器或[它們的組合](http://stackoverflow.com/a/5630271/418556)以及[white space]的佈局填充和邊框(http://stackoverflow.com/a/17874718/ 418556)。 –

+0

envase.getWidth() envase.getHeight() 打印上面的兩個返回值,你會知道的。 –

+0

@shimbushambu試過了,不知道爲什麼它減少了界限。在創建JPanel的新實例後解決了它的設置大小,現在工作正常。 –

回答

5
d.setSize(envase.getWidth(), envase.getHeight()); 

一個對話框具有邊界周圍的裝飾。如果代碼將對話框(d)的大小設置爲內容的大小(envase),則每次都會縮小一些。

相關問題