Java 在JDailog中添加带有JTextArea的JScrollPane

Java 在JDailog中添加带有JTextArea的JScrollPane,java,swing,jscrollpane,jtextarea,jdialog,Java,Swing,Jscrollpane,Jtextarea,Jdialog,在上面的代码中,我无法在JScrollPane中看到JTextArea。有人知道我做错了什么吗?设置JTextArea的大小 public class DailogDemo { private JDialog chatdailog; private JTextArea chatHistory; private JScrollPane mScrollMessage; DailogDemo() { chatdailog=new JDialog(); chatdailog.setSize(30

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

设置JTextArea的大小

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();
}
}

如果你有一个布局,你可以使用
newjtextarea(24,32)
pack()
  • 使用

  • 不要设置和删除
    chatdailog.setSize(300400)

  • 不设置和删除
    chatHistory.setPreferredSize(新维度(150100))

  • 不设置和删除
    mScrollMessage.add(聊天历史记录)使用
    JScrollPane滚动窗格=新的JScrollPane(textArea)取而代之

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

  • 不要设置和删除
    chatdailog.show()使用
    chatdailog.setVisible(true)

  • 将代码行
    chatdailog.pack()
    添加到行
    chatdailog.setVisible(true)之前

  • 如果此
    JDialog
    wrap
    chatdailog.setVisible有另一个父级(true)进入
    invokeLater()

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