将带有JTextArea的JScrollPane添加到JDailog中

时间:2012-07-25 12:20:02

标签: java swing jscrollpane jtextarea jdialog

public class DailogDemo 
{

private JDialog chatdailog;
private JTextArea chatHistory;
private JScrollPane mScrollMessage; 

DailogDemo()
{
chatdailog=new JDialog();
chatdailog.setSize(300, 400);

chatHistory=new JTextArea();
chatHistory.setPreferredSize(new Dimension(150,100));
mScrollMessage=new JScrollPane();
mScrollMessage.add(chatHistory);
mScrollMessage.setBounds(4, 10, 150, 100);
mScrollMessage.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
chatdailog.add(mScrollMessage);
chatdailog.show();
}

public static void main(String args[])
{
    new DailogDemo();
}
}

在上面的代码中,我无法在JScrollPane中看到JTextArea。有人知道我做错了吗?

3 个答案:

答案 0 :(得分:4)

  • 使用JTextArea(int rows, int columns)

  • 不要设置和删除chatdailog.setSize(300, 400);

  • 不要设置和删除chatHistory.setPreferredSize(new Dimension(150,100));

  • 请勿设置和删除mScrollMessage.add(chatHistory);使用JScrollPane scrollPane = new JScrollPane(textArea);

  • 不要设置和删除mScrollMessage.setBounds(4, 10, 150, 100);

  • 请勿设置和删除chatdailog.show();使用chatdailog.setVisible(true);

  • 在行chatdailog.pack()

  • 之前添加代码行chatdailog.setVisible(true);
  • 如果此JDialog换行chatdailog.setVisible(true);还有另一位家长加入invokeLater()

答案 1 :(得分:1)

如果您有布局,可以使用new JTextArea(24, 32)pack()来安排。

答案 2 :(得分:0)

设置JTextArea的大小

chatHistory.setSize(new Dimension(width,height));