2012-01-04 64 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