如何在JForm中制作多行(或换行)JLabel

时间:2018-12-24 07:15:31

标签: newline jlabel multiline

我正在制作一个运输标签程序,其中已输入的地址在JLabel上进行了预览。 问题在于JLabel不支持多行文本。 如何使其成为多行?

我尝试了HTML方法,但是没有用。

无论如何,我正在使用Netbeans 8.0.2

private void buttonexitActionPerformed(java.awt.event.ActionEvent evt) {                                           
    int result = JOptionPane.showConfirmDialog(null, "Exit now?", "You're about to exit", JOptionPane.YES_NO_OPTION);
    if(result == JOptionPane.YES_OPTION){
        System.exit(0);
    }
    else if(result == JOptionPane.NO_OPTION) {
        this.setDefaultCloseOperation(this.DO_NOTHING_ON_CLOSE);
    }
}                                                                                    

private void buttonpreviewActionPerformed(java.awt.event.ActionEvent evt) {                                              
    pname.setFont(new java.awt.Font("Times New Roman", 0, 12));
    pname.setForeground(Color.BLACK);
    pname.setText(String.valueOf(inputname.getText()));

    pnumber.setFont(new java.awt.Font("Times New Roman", 0, 12));
    pnumber.setForeground(Color.BLACK);
    pnumber.setText(String.valueOf(inputnumber.getText()));

    paddress.setFont(new java.awt.Font("Times New Roman", 0, 12));
    paddress.setForeground(Color.BLACK);
    padress.setText(String.valueOf(inputaddress.getText()));



    pcourier.setFont(new java.awt.Font("Times New Roman", 1, 12));
    pcourier.setForeground(Color.BLACK);
  pcourier.setText(String.valueOf(cbcourier.getModel().getSelectedItem()));
}                                             

private void buttonclearActionPerformed(java.awt.event.ActionEvent evt) {                                            
    inputname.setText("");
    inputnumber.setText("");
    inputaddress.setText("");
    cbcourier.setSelectedIndex(0);
}                                           

private void buttonprintActionPerformed(java.awt.event.ActionEvent evt) {                                            
    Toolkit tk = panelpreview.getToolkit();
    PrintJob pj = tk.getPrintJob(this, null, null);
    Graphics g = pj.getGraphics();
    panelpreview.print(g);
    g.dispose();
    pj.end();

我希望“ paddress”(JLabel)可以显示与在“ inputadress”(JTextField)中输入的文本相同的文本。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我找到了使用HTML的答案,将/ n替换为

 padress.setText("<html>" + String.valueOf(inputaddress.getText().replaceAll("<","&lt;").replaceAll(">", "&gt;").replaceAll("\n", "<br/>")) + "</html>");

来源:source