Я пытаюсь вызвать метод из класса Circle в моем проекте, который отображает основную информацию об объекте в JLabel. По какой-то причине этот текст не будет идти на новую строку, даже если я использую HTML, чтобы попытаться отформатировать его:JLabel HTML New Line Issue
@Override
public String toString(){
return "<html>Type: " + this.getClass().getSimpleName() + "<br>Radius: " + getRadius() + "<br>Area: " + df.format(getArea()) + "<br>Perimeter: </html>" + df.format(getPerimeter());
}
Я пытаюсь отобразить информацию с этим кодом:
@Override
public void actionPerformed(ActionEvent ae) {
if(ae.getSource()==btnCalc && x==1){
//create object
double R = Double.parseDouble(Txt1.getText());
Circle circ = new Circle(R);
lblResult.setText(circ.toString());
}
При запуске программы она просто возвращает это: <html>Type: Circle<br>Radius: 4.0<br>Area: 50.27<br>Perimeter:</html> 25.13
редактирования: Я попытался просто установив текст в сообщении исключения вместо того, чтобы вызвать метод, и он не работает так как редактировать: Теперь это происходит, когда я пытаюсь запустить классы сферы цилиндра, но этого не происходит, когда у меня нет html в методе toString().
Оказывается, я использовал DecimalFormat в последних четырех классах, что и давало мне исключение. Как только я избавился от этого, строки отлично отформатировались с использованием JTextPane вместо JtextField.
Разве ваш тег html не должен находиться в конце строки, а не частично через нее? – khelwood
Даже в конце строки он не форматирует его. Он просто заканчивает отображение ' Тип: Circle
Радиус: 4,0
Площадь: 50,27
Периметр: 25,13' – DeathWish
отлично работает, когда я пытаюсь это: 'JLabel LBL = новый JLabel (» Тип: Circle
Радиус: 4.0
Area : 50,27
Периметр: 25,13 "); JFrame f = новый JFrame(); . F.getContentPane() добавить (LBL); f.pack(); f.setVisible (true); ' – khelwood