我正在制作一个运输标签程序,其中已输入的地址在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)中输入的文本相同的文本。有什么建议吗?
答案 0 :(得分:0)
我找到了使用HTML的答案,将/ n替换为
。
padress.setText("<html>" + String.valueOf(inputaddress.getText().replaceAll("<","<").replaceAll(">", ">").replaceAll("\n", "<br/>")) + "</html>");
来源:source