gpt4 book ai didi

java - 如何自动滚动文本区域而不增加其大小

转载 作者:行者123 更新时间:2023-12-02 13:17:35 26 4
gpt4 key购买 nike

public void NewMessage(){
JPanel panel = new JPanel();
JLabel label = new JLabel("Enter message:");
JTextArea msgBodyContainer = new JTextArea(10,20);
msgBodyContainer.setAutoscrolls(true);
panel.add(label);
panel.add(msgBodyContainer);


String[] options = new String[]{"OK", "Cancel"};
int option = JOptionPane.showOptionDialog(null, panel, "Message "+searchedProfileFirstName,
JOptionPane.NO_OPTION, JOptionPane.PLAIN_MESSAGE,
null, options, options[1]);
if(option == 0) // pressing OK button
{

}
}

这是我在定义的方法 NewMessage() 中使用的代码。我的问题是我想防止这种情况发生: Picture of problem

1-当可见时,文本区域会自动放大并且超出面板边界时不可见2-标签“输入消息”向下移动,与文本区域垂直居中对齐

最佳答案

  1. JPanel 默认使用 FlowLayout
  2. JTextArea 这样的文本组件确实应该包装在 JScrollPane 中,以允许它们变得比可用空间更大

推荐

  • 改用 GridBagLayout,它可以让您更好地控制布局
  • 使用 JScrollPaneJTextArea 包装在

例如...

Example

    JPanel panel = new JPanel(new GridBagLayout());
JLabel label = new JLabel("Enter message:");
JTextArea msgBodyContainer = new JTextArea(10, 20);
msgBodyContainer.setAutoscrolls(true);
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.insets = new Insets(4, 4, 4, 4);
gbc.anchor = GridBagConstraints.NORTHWEST;
gbc.fill = GridBagConstraints.HORIZONTAL;
panel.add(label, gbc);
gbc.gridx++;
gbc.fill = GridBagConstraints.BOTH;
gbc.anchor = GridBagConstraints.NORTHWEST;
panel.add(new JScrollPane(msgBodyContainer), gbc);

String[] options = new String[]{"OK", "Cancel"};
int option = JOptionPane.showOptionDialog(null, panel, "Message ",
JOptionPane.NO_OPTION, JOptionPane.PLAIN_MESSAGE,
null, options, options[1]);

参见:

了解更多详情

关于java - 如何自动滚动文本区域而不增加其大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43703288/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com