如何在java中为同一文本区域使用不同的字体类型和大小

我的java表单中有一个文本区域。 我该如何使用不同的字体类型和大小

public double roundTwoDecimals(double d) { DecimalFormat twoDForm = new DecimalFormat("#.##"); return Double.valueOf(twoDForm.format(d)); } int ches = 0; ref = Integer.parseInt(jTextField6.getText()); nam = jTextField7.getText(); add = jTextArea3.getText(); ph = jTextField8.getText(); bill(jTextArea4); total(); double tt = 0; if (flag == 1) { uclist(nam); ches = jComboBox2.getSelectedIndex(); } else if (flag == 0) { iclist(nam, add, ph); ches = not(); } for (int i = 0; i < no(); i++) { if (qty[i] != 0) { t[i] = amt[i] / 1.135; tv[i] = amt[i] - t[i]; isalest((i + 1), ches, qty[i], price[i]); uSale(nItem[i], qty[i]); ustock((i + 1), qty[i]); jTextArea4.append("\n" + nItem[i] + " " + qty[i] + " " + price[i] + " " + r(t[i])); } tt += tv[i]; } jTextArea4.append("\n\tTotal(including vat @13.5%" + r(tt));// TODO add your handling code here: 

最好也许使用另一个可以处理更复杂格式的文本组件,例如JTextPane而不是JTextArea,因为后者更多只用于显示简单文本。

但话说回来,如果你想以表格forms显示数据,可以考虑使用具有等宽字体的JTextArea,如Font.MONOSPACED,并使用String.format(…)来格式化文本,或者更好的是,使用JTable代替JTextArea。

另外,请考虑重命名所有变量,以使其名称具有逻辑意义。 我们很难用名为r()的方法或名为t []的数组来制作正面或反面。 这包括您的GUI变量。 您似乎正在使用NetBeans生成GUI(这是其他时间的另一个建议的主题),并且此IDE将轻松地让您重命名GUI变量,这也是我强烈建议的。 从现在开始查看此代码几周后,如果将jTextField7重命名为clientLastNameField或其他类似代码,则会更有意义。