打印出JLabel中的句子

时间:2015-08-07 11:12:58

标签: java components jlabel

如何在JLabel中打印出新的句子或行,而不更改打印的最后一行?还是我必须使用其他组件?

2 个答案:

答案 0 :(得分:0)

您可以使用getText()来检索JLabel中已存在的内容,然后使用setText()来设置新值。

所以要添加一些内容,你要做

label.setText(label.getText()+“new line”);

答案 1 :(得分:0)

您可以使用以下代码获得所需的输出。

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