求助大神!Java设计画圆程序,要求在画圆区域画圆,并能设置圆的颜色及是否填充圆的内部。我已经写了一部分了,现在可以画实心圆,但是设置颜色和是否填充一直想不出来要怎么弄,请问有人可以指点一下吗?
import java.awt.*;
import javax.swing.*;
public class C extends JFrame implements ActionListener{
PrintPanel PP; //创建画圆面板
JLabel lb1;
JTextField TF;
JButton button;
public JRadioButton []rb1;
public C() {
JFrame test = new JFrame("画圆程序"); //创建框架
JPanel MyPanel1 = new JPanel(); //创建第一个面板,装有关颜色选择的组件
JPanel MyPanel2 = new JPanel(); //创建第二个面板,装是否填充有关的组件
JPanel MyPanel3 = new JPanel(); //创建第三个面板,装半径有关的组件
JPanel MyPanel4 = new JPanel(); //创建第四个面板,装画圆按钮等组件
PP = new PrintPanel(0);
JPanel Right = new JPanel(new GridLayout(4, 1)); //创建右面板
JSplitPane test1 = new JSplitPane(); //创建分裂面板
test.setDefaultCloseOperation(EXIT_ON_CLOSE);
test.setSize(700, 460); //设置框架大小
test.setResizable(false);
Container c = test.getContentPane();
c.add(test1);
c.setLayout(new GridLayout(1, 2, 0, 0));
JRadioButton []rb1 = {new JRadioButton("黑色"),new JRadioButton("红色"),new JRadioButton("绿色")};
rb1[0].setSelected(true); //“黑色”选项默认为选中
ButtonGroup buttongroup = new ButtonGroup();
for(int i=0;i<rb1.length;i++) { //for循环,将两个单选按钮加入按钮组和面板中
buttongroup.add(rb1[i]);
MyPanel1.add(rb1[i]);
}
lb1 = new JLabel("是否填充:",JLabel.LEFT);
MyPanel2.add(lb1);
JRadioButton []rb = {new JRadioButton("是"),new JRadioButton("否")};
rb[0].setSelected(true); //“是”选项默认为选中
ButtonGroup buttongroup1 = new ButtonGroup();
for(int i=0;i<rb.length;i++) { //for循环,将两个单选按钮加入按钮组和面板中
buttongroup1.add(rb[i]);
MyPanel2.add(rb[i]);
}
TF = new JTextField(8); //创建文本框,用于半径调节
JLabel lb2 = new JLabel("半径:");
MyPanel3.add(lb2);
MyPanel3.add(TF);
TF.getText();
button = new JButton("画圆"); //创建画圆按钮,当数据调整完毕后进行画圆
MyPanel4.add(button);
button.addActionListener(this);
Right.add(MyPanel1);
Right.add(MyPanel2);
Right.add(MyPanel3);
Right.add(MyPanel4);
test1.setEnabled(false);
test1.setOrientation(JSplitPane.HORIZONTAL_SPLIT); //设置分割方向是水平分割
test1.setLeftComponent(PP); //插入左边面板
test1.setRightComponent(Right); //插入右边面板
test.setVisible(true);
test1.setDividerLocation(0.55);
}
public void actionPerformed(ActionEvent e) {
//if(e.getSource() == rb1[0])
try {
PP.setR(Integer.valueOf(TF.getText()));
}catch(NumberFormatException a) {
System.out.println("please input a number!");
}
PP.repaint();
}
class printp extends Panel{ //内部类,用于画圆的画板
public int r;
public printp(int r){
this.r = r;
}
public void paint(Graphics g){
super.paint(g);
g.setColor(Color.red);
int h = this.getHeight();
int w = this.getWidth();
g.fillOval(w/2 - r, h/2 - r, 2 * r, 2 * r);
}
public int getR() {
return r;
}
public void setR(int r) {
this.r = r;
}
public void actionPerformed(ActionEvent e) {
}
}
public static void main(String[] args) {
C test = new C();
}
}