在 JLabel 中打印句子
Posted
技术标签:
【中文标题】在 JLabel 中打印句子【英文标题】:Printing out sentences in JLabel 【发布时间】:2015-10-30 19:37:44 【问题描述】:如何在 JLabel 中打印出新的句子或行,而不更改打印的最后一行?还是我必须使用其他组件?
【问题讨论】:
使用 setText(getText() + 当前文本) JTextArea 更适合多行文本。不过,您需要获取组件当前显示的内容(getText()),与新内容连接并设置要显示的值(setText())。 【参考方案1】:您可以使用 getText() 检索 JLabel 中已存在的内容,然后使用 setText() 设置新值。
所以要在最后添加一些东西,你会这样做
label.setText(label.getText()+"换行");
【讨论】:
【参考方案2】:您可以使用以下代码来获得所需的输出。
public class CreateJLabelWithBorder extends JFrame implements ActionListener
JTextField textField;
JLabel label;
public CreateJLabelWithBorder()
this.getContentPane().setLayout(new FlowLayout());
textField = new JTextField(20);
add(textField);
textField.addActionListener(this);
label = new JLabel("Hello world");
add(label);
@Override
public void actionPerformed(ActionEvent e)
if (!textField.getText().isEmpty())
if (label.getText() != null)
String text = textField.getText() + "<br>" + label.getText();
label.setText("<html> <body>" + text + "</body></html>" + "<br>");
textField.setText("");
else
String text = textField.getText();
label.setText("<html> <body>" + text + "</body></html>" + "<br>");
textField.setText("");
private static void createAndShowGUI()
JFrame frame = new CreateJLabelWithBorder();
// frame.pack();
frame.setSize(500, 700);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
public static void main(String[] args)
javax.swing.SwingUtilities.invokeLater(new Runnable()
public void run()
createAndShowGUI();
);
【讨论】:
以上是关于在 JLabel 中打印句子的主要内容,如果未能解决你的问题,请参考以下文章
如何在 JLabel 和 JTextField 上显示非科学格式的值?