本例子是以JSlider为控制画圆的大小 ,在JPanel上画椭圆。
/*
*JSlider example
*
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class SliderDemo extends JFrame{
private JSlider diameterSlider;
private OvalPanel myPanel;
public SliderDemo(){
super("Slider Demo");
myPanel = new OvalPanel();
myPanel.setBackground(Color.green);
diameterSlider = new JSlider(SwingConstants.HORIZONTAL,0,200,10);
/*第一个参数是: JSlider的对齐方式是:水平.
*第二个参数是: JSlider的起始数值 0
*第三个参数是: JSlider的最终数值 200
*第四个参数是: JSlider的初始值.10
*/
diameterSlider.setMajorTickSpacing(10);// JSlider的最小数值单位 10
diameterSlider.setPaintTicks(true); // JSlider是否要显示刻度标记
diameterSlider.addChangeListener(
new ChangeListener(){
public void stateChanged(ChangeEvent event){
myPanel.setDiameter(diameterSlider.getValue());
}
}
);
Container container = getContentPane();
container.add(diameterSlider,BorderLayout.SOUTH);
container.add(myPanel,BorderLayout.CENTER);
setSize(220,270);
setVisible(true);
}
public static void main(String args[]){
SliderDemo demo = new SliderDemo();
demo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class OvalPanel extends JPanel{
private int diameter = 10;
public void paintComponent(Graphics g){
super.paintComponent(g);
g.fillOval(10,10,diameter,diameter);
}
public void setDiameter(int newDiameter){
diameter = (newDiameter >=0 ? newDiameter:10);
repaint();
}
public Dimension getPreferredSize()// 设置JPanel的大小
{
return new Dimension(200,200);
}
public Dimension getMinimumSize() // 设置最小宽度和高度(即比这小的尺寸将不能有效的显示该组件)
{
return getPreferredSize();
}
}
/*
*JSlider example
*
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class SliderDemo extends JFrame{
private JSlider diameterSlider;
private OvalPanel myPanel;
public SliderDemo(){
super("Slider Demo");
myPanel = new OvalPanel();
myPanel.setBackground(Color.green);
diameterSlider = new JSlider(SwingConstants.HORIZONTAL,0,200,10);
/*第一个参数是: JSlider的对齐方式是:水平.
*第二个参数是: JSlider的起始数值 0
*第三个参数是: JSlider的最终数值 200
*第四个参数是: JSlider的初始值.10
*/
diameterSlider.setMajorTickSpacing(10);// JSlider的最小数值单位 10
diameterSlider.setPaintTicks(true); // JSlider是否要显示刻度标记
diameterSlider.addChangeListener(
new ChangeListener(){
public void stateChanged(ChangeEvent event){
myPanel.setDiameter(diameterSlider.getValue());
}
}
);
Container container = getContentPane();
container.add(diameterSlider,BorderLayout.SOUTH);
container.add(myPanel,BorderLayout.CENTER);
setSize(220,270);
setVisible(true);
}
public static void main(String args[]){
SliderDemo demo = new SliderDemo();
demo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class OvalPanel extends JPanel{
private int diameter = 10;
public void paintComponent(Graphics g){
super.paintComponent(g);
g.fillOval(10,10,diameter,diameter);
}
public void setDiameter(int newDiameter){
diameter = (newDiameter >=0 ? newDiameter:10);
repaint();
}
public Dimension getPreferredSize()// 设置JPanel的大小
{
return new Dimension(200,200);
}
public Dimension getMinimumSize() // 设置最小宽度和高度(即比这小的尺寸将不能有效的显示该组件)
{
return getPreferredSize();
}
}