-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