把JSlider放到java代码中......?

时间:2015-10-03 23:00:51

标签: java swing

我画了一个圆圈并在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;
    }
}

1 个答案:

答案 0 :(得分:4)

为什么不从一个工作示例开始,它将向您展示如何更好地构建代码?

How to Use Sliders上的Swing教程开始演示。

创建一个面板来保存所有组件。然后,您可以将滑块添加到面板,将画布添加到面板。本教程使用BoxLayout,但使用BorderLayout可能更容易。让画布显示在CENTER中,滑块显示在NORTH或SOUTH中。