JScrollPane 不显示
JScrollPane doesn't show up
我制作了一个程序,我想将一个 JScrollPane 添加到一个 JTextArea(但它没有显示)。
这是代码(或者至少是所有必须处理 JTextArea / JScrollPane 的代码,整个代码很多):
static JPanel contentPane; // This one got initialised in the constructor
static JTextArea tarMessages;
public void addTextArea{
tarMessages = new JTextArea();
tarMessages.setForeground(Color.WHITE);
tarMessages.setBackground(new Color(0, 0, 0, 0));
tarMessages.setEditable(false);
tarMessages.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
tarMessages.setBounds(600, 124, 200, 192);
tarMessages.setOpaque(false);
/*DefaultCaret dlcMessages = (DefaultCaret)tarMessages.getCaret();
dlcMessages.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);*/
tarMessages.addMouseListener(new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e) {
requestFocus();
}
});
JScrollPane scpMessages = new JScrollPane(tarMessages);
scpMessages.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
scpMessages.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scpMessages.setPreferredSize(new Dimension(10, 192));
scpMessages.setEnabled(true);
contentPane.add(scpMessages);
contentPane.add(tarMessages);
}
感谢您的帮助。祝你假期愉快。
JScrollPane scpMessages = new JScrollPane(tarMessages);
...
contentPane.add(scpMessages);
contentPane.add(tarMessages);
一个 Swing 组件只能有一个父组件。
首先将文本区域添加到滚动窗格,这是正确的。
但是当您将其添加到内容窗格时,您将其从滚动窗格中删除。
摆脱:
///contentPane.add(tarMessages);
此外,当您创建文本区域时,请使用如下代码:
tarMessages = new JTextArea(5, 20);
这将指定文本区域的 rows/columns,以便它可以适当调整自己的大小。
不要使用 setBounds(...)
我制作了一个程序,我想将一个 JScrollPane 添加到一个 JTextArea(但它没有显示)。 这是代码(或者至少是所有必须处理 JTextArea / JScrollPane 的代码,整个代码很多):
static JPanel contentPane; // This one got initialised in the constructor
static JTextArea tarMessages;
public void addTextArea{
tarMessages = new JTextArea();
tarMessages.setForeground(Color.WHITE);
tarMessages.setBackground(new Color(0, 0, 0, 0));
tarMessages.setEditable(false);
tarMessages.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
tarMessages.setBounds(600, 124, 200, 192);
tarMessages.setOpaque(false);
/*DefaultCaret dlcMessages = (DefaultCaret)tarMessages.getCaret();
dlcMessages.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);*/
tarMessages.addMouseListener(new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e) {
requestFocus();
}
});
JScrollPane scpMessages = new JScrollPane(tarMessages);
scpMessages.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
scpMessages.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scpMessages.setPreferredSize(new Dimension(10, 192));
scpMessages.setEnabled(true);
contentPane.add(scpMessages);
contentPane.add(tarMessages);
}
感谢您的帮助。祝你假期愉快。
JScrollPane scpMessages = new JScrollPane(tarMessages);
...
contentPane.add(scpMessages);
contentPane.add(tarMessages);
一个 Swing 组件只能有一个父组件。
首先将文本区域添加到滚动窗格,这是正确的。
但是当您将其添加到内容窗格时,您将其从滚动窗格中删除。
摆脱:
///contentPane.add(tarMessages);
此外,当您创建文本区域时,请使用如下代码:
tarMessages = new JTextArea(5, 20);
这将指定文本区域的 rows/columns,以便它可以适当调整自己的大小。
不要使用 setBounds(...)