JOptionPane的setSize

时间:2012-01-04 07:19:37

标签: java swing

尝试设置JOptionPane的大小,但它的大小相同。我尝试过setPreferredSize和setSize但由于某种原因,JOptionPane坚持使用相同的宽度和高度。 基本上我有一堆文本,由于窗口的大小,它被“切断”。

我实际上正在使用另一种语言的swing库的端口,所以它可能是他们库的一个错误 - 但根据文档,它应该反映Java Swing调用。

我错过了什么吗?

  • 编辑 - 想添加我用JOptionPane.showInputDialog创建joptionpane

  • 再次编辑 - 我正在使用ASwing(Java Swing的actionscript端口 - 因此可能存在api差异,尽管它应该是 端口...)

4 个答案:

答案 0 :(得分:5)

最好创建一个带有优先大小的JPanel或带有JScrollPane滚动条的JTextArea,并将其添加到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

答案 1 :(得分:3)

检查容器的布局管理器

答案 2 :(得分:1)

实际上,找到了修复。移植的库构建了JOptionPane,我想与Java版本略有不同。

optionpane.getFrame().setSize()

(使用ASwing - Java Swing的Actionscript端口)

答案 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);
    }
}