我画了一个圆圈并在GUI底部显示半径和直径。我得到了圆圈和GUI中的所有内容,但是在放入JSlider时遇到问题,您可以在GUI中调整半径和直径。我该怎么做呢?它会进入超级班吗?
这是代码。 (请记住有两个类)
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Circle1 extends JFrame {
private CircleCanvas theCanvas;
private JTextArea display;
public Circle1() {
super("Circle1");
theCanvas = new CircleCanvas();
display = new JTextArea(5, 30);
display.setText("The Radius is: " + theCanvas.getRadius() + "\nThe Diameter is: " + theCanvas.getDiameter()
+ "\nThe Area is: " + theCanvas.getArea() + "\nThe Circumference is: " + theCanvas.getCircumference());
getContentPane().add(theCanvas, BorderLayout.CENTER);
getContentPane().add(display, BorderLayout.SOUTH);
setSize(200, 200);
show();
}
public static void main(String args[]) {
Circle1 app = new Circle1();
app.addWindowListener(new WindowAdapter() {
public void WindowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
class CircleCanvas extends JPanel {
private int radius;
public CircleCanvas() {
radius = (int) (1 + Math.random() * 100);
setSize(100, 100);
}
public void paintComponent(Graphics g) {
g.drawOval(0, 0, radius, radius);
}
public int getDiameter() {
return (2 * radius);
}
public int getCircumference() {
return (int) (2 * Math.PI * radius);
}
public int getArea() {
return (int) (radius * radius * Math.PI);
}
public int getRadius() {
return radius;
}
}
答案 0 :(得分:4)
为什么不从一个工作示例开始,它将向您展示如何更好地构建代码?
从How to Use Sliders上的Swing教程开始演示。
创建一个面板来保存所有组件。然后,您可以将滑块添加到面板,将画布添加到面板。本教程使用BoxLayout,但使用BorderLayout可能更容易。让画布显示在CENTER中,滑块显示在NORTH或SOUTH中。