我正在绘制一个圆,并在GUI的底部显示半径和直径。我得到了这个圆和GUI中的一切工作,但有问题放在JSlider中,您可以在GUI中调整半径和直径。我会如何去做这件事?它会进入超级课堂吗?将JSlider放入java代码中?
这是代码。 (记住有两班)
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;
}
}
为什么不使用'SeekBar'来代替? –
@Joaquin,什么是“SeekBar”? “从我的网上快速搜索,这是一个Android组件,这是一个Swing应用程序 – camickr
是啊,让我感到困惑太大了JSlider是面向对象的Java – Noah