2012-01-04 65 views
0

嘗試設置JOptionPane的大小,但它的大小相同。我試過setPreferredSize和setSize,但由於某種原因,JOptionPane的寬度和高度相同。 基本上我有一堆文本,因爲窗口的大小而被「切斷」。setSize of JOptionPane

我實際上使用另一種語言的swing庫的一個端口,所以它可能是他們庫的一個bug - 但根據文檔,它應該鏡像Java Swing調用。

我錯過了什麼嗎?

  • 編輯 - 想補充一點,我創建JOptionPane.showInputDialog的JOptionPane的再次

  • 編輯 - 我使用AsWing的(的Java Swing的動作端口 - 因此有可能是API差異,雖然它應該是一個 端口...)

回答

1

事實上的佈局管理器,找到了修復。移植的庫構建了JOptionPane,我猜測它與Java版本稍有不同。

optionpane.getFrame().setSize() 

(使用AsWing的 - 的Java Swing ActionScript的端口)

5

這是好主意,以創建一個JPanel與prefereed大小或使用的JTextArea JScrollPane的滾動條,並將其添加到optionpan。

這很容易做到,不僅設置對話框的大小,而且允許內容的很大的靈活性。

JTextArea mytext = new JTextArea(); 
mytext.setText("mytextline1\nmytextline2\nmytextline3\nmytextline4\nmytextline5\nmytextline6"); 
mytext.setRows(5); 
mytext.setColumns(10); 
mytext.setEditable(true); 
JScrollPane mypane = new JScrollPane(mytext); 

Object[] objarr = { 
    new JLabel("Enter some text:"), 
    mypane, 
}; 

JOptionPane Optpane = new JOptionPane(objarr, JOptionPane.PLAIN_MESSAGE); 

看到details

3

檢查容器

0

可以一樣好通過擴展我們的Componemt覆蓋的setSize:

public class Headerfield extends JLabel 
{ 
    public Headerfield(String text) 
    { 
     super(text); 
    } 

    public void setSize(int width, int height) 
    { 
     super.setSize(100, 20); 
    } 
} 
+0

條條大道通羅馬 - 違反法的合同是不是一個他們;-) – kleopatra 2013-06-28 08:43:32