-1
내 JTextArea 텍스트가 올바르게 표시되지 않는이 프로그램에 문제가 있습니다. 이 프로그램은 여러 클래스를 사용하여 원을 만들고 화면 하단의 슬라이더에 따라 변경됩니다. 프레임의 상단에 서클의 통계를 표시하려고합니다. 그러나 JTextArea가 나타나지만 텍스트가 없습니다.JTextArea가 필요한 텍스트를 표시하지 않습니다.
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JSlider;
import javax.swing.JTextArea;
import javax.swing.SwingConstants;
import javax.swing.event.ChangeListener;
import javax.swing.event.ChangeEvent;
public class SliderFrame extends JFrame
{
private final JSlider diameterJSlider; // slider to select diameter
private final OvalPanel myPanel; // panel to draw circle
private JTextArea stats;
private double radius;
private double diameter;
private double circumference;
private double area;
// no-argument constructor
public SliderFrame()
{
super("Circle Statistics");
myPanel = new OvalPanel(); // create panel to draw circle
myPanel.setBackground(Color.LIGHT_GRAY);
stats = new JTextArea(2, 20);
// set up JSlider to control diameter value
diameterJSlider =
new JSlider(SwingConstants.HORIZONTAL, 0, 400, 10);
diameterJSlider.setMajorTickSpacing(10); // create tick every 10
diameterJSlider.setPaintTicks(true); // paint ticks on slider
// register JSlider event listener
diameterJSlider.addChangeListener(
new ChangeListener() // anonymous inner class
{
// handle change in slider value
@Override
public void stateChanged(ChangeEvent e)
{
myPanel.setDiameter(diameterJSlider.getValue());
stats = new JTextArea();
radius = diameterJSlider.getValue() * .5;
diameter = diameterJSlider.getValue();
circumference = Math.PI * diameterJSlider.getValue();
area = Math.PI * radius * radius;
stats.setText("Radius: " + radius + " " + "Diameter: " + diameter + " " + "Circumference: " + circumference + " " + "Area: " + area); //help here
}
}
);
add(diameterJSlider, BorderLayout.SOUTH);
add(myPanel, BorderLayout.CENTER);
add(stats, BorderLayout.NORTH);
}
} // end class SliderFrame
대단히 감사합니다. 그게 원래 내 JTextArea를 다른 위치에서 생성하고 삭제하는 것을 잊어 버린 것은 완전히 잘못된 것입니다. – DHem
만약 당신이 나에게 묻지 않았다면. JTextArea를 사용하여 소수 자릿수를 제한하는 간단한 방법이 있습니까? – DHem
@DHem 'NumberFormatter'를 사용하십시오. – MadProgrammer