package SwingPacket;
import javax.swing.*;
import javax.swing.border.BevelBorder;
import javax.swing.border.LineBorder;
import javax.swing.border.SoftBevelBorder;
import javax.swing.border.TitledBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
public class TiaoSeBan extends JFrame {
int r=0,g=0,b=0,a=0;
JPanel jpane1=new JPanel();
JPanel jpane2=new JPanel();
JPanel jpane3=new JPanel();
JLabel label1=new JLabel();
/* JLabel label2=new JLabel();
JLabel label3=new JLabel();
JLabel label4=new JLabel();
*/
JProgressBar progressr=new JProgressBar();
JProgressBar progressg=new JProgressBar();
JProgressBar progressb=new JProgressBar();
JProgressBar progressa=new JProgressBar();
ColorCanvas canvas=new ColorCanvas();
//ColorCanvas canvas;
TitledBorder titleborder1=new TitledBorder(
BorderFactory.createEtchedBorder(Color.white, new Color(139,139,139)),"red" );
TitledBorder titleborder2=new TitledBorder(
BorderFactory.createEtchedBorder(Color.white, new Color(139,139,139)),"green");
TitledBorder titleborder3=new TitledBorder(
BorderFactory.createEtchedBorder(Color.white, new Color(139,139,139)),"blue");
TitledBorder titleborder4=new TitledBorder(
BorderFactory.createEtchedBorder(Color.white, new Color(139,139,139)),"alpha");
JSlider sliderr=new JSlider();
JSlider sliderg=new JSlider();
JSlider sliderb=new JSlider();
JSlider slidera=new JSlider();
BorderLayout border1=new BorderLayout();
GridLayout flow=new GridLayout();
GridLayout progress1=new GridLayout(4,1);
public TiaoSeBan(){
init();
}
public void init(){
this.setLayout(border1);
this.setSize(new Dimension(800,600));
this.setTitle("调色板(Create Color)");
// canvas=new ColorCanvas(r,g,b,a);
jpane1.setBounds(new Rectangle(100,50,500,250));
canvas.setBounds(new Rectangle(100,50,500,250));
jpane1.setBorder(new SoftBevelBorder(SoftBevelBorder.RAISED));
progressr.setStringPainted(true);
progressr.setBorderPainted(true);
progressr.setSize(new Dimension(40,10));
// progressr.setIndeterminate(true);
progressr.setBorder(new TitledBorder("red百分比(%)"));
progressg.setStringPainted(true);
progressg.setBorderPainted(true);
progressg.setSize(new Dimension(40,10));
//progressg.setIndeterminate(true);
progressg.setBorder(new TitledBorder("green百分比(%)"));
progressb.setStringPainted(true);
progressb.setBorderPainted(true);
progressb.setSize(new Dimension(40,10));
// progressb.setIndeterminate(true);
progressb.setBorder(new TitledBorder("blue百分比(%)"));
progressa.setStringPainted(true);
progressa.setBorderPainted(true);
progressa.setSize(new Dimension(40,10));
//progressa.setIndeterminate(true);
progressa.setBorder(new TitledBorder("alpha百分比(%)"));
jpane3.setBounds(new Rectangle(100,50,200,50));
jpane3.setLayout(progress1);
jpane3.add(progressr);
jpane3.add(progressg);
jpane3.add(progressb);
jpane3.add(progressa);
jpane1.add(jpane3);
// canvas.setBackground(new Color(r,g,b,a));
//jpane1.add(canvas);
//jpane1.setBackground(new Color(255,255,255,255));
// jpane1.setBounds(new Rectangle(100,50,600,250));
//jpane1.setVisible(true);
/* label1.setText("红色");
label2.setText("绿色");
label3.setText("蓝色");
label4.setText("alpha");*/
label1.setText("调色板演示屏幕");
label1.setHorizontalAlignment(SwingConstants.CENTER);
sliderr.setPaintLabels(true);
sliderr.setPaintTicks(true);
sliderr.setPaintTrack(true);
sliderr.setMinimum(0);
sliderr.setMaximum(255);
sliderr.setValue(0);
sliderr.setBorder(titleborder1);
sliderr.addChangeListener(
new ChangeListener(){
@Override
public void stateChanged(ChangeEvent arg0) {
// TODO Auto-generated method stub
r=sliderr.getValue();
canvas.setBackground(new Color(r,g,b,a));
canvas.repaint();
progressr.setValue((int)(sliderr.getValue()*100/255));
}
});
sliderg.setPaintLabels(true);
sliderg.setPaintTicks(true);
sliderg.setPaintTrack(true);
sliderg.setMinimum(0);
sliderg.setMaximum(255);
sliderg.setValue(0);
sliderg.setBorder(titleborder2);
sliderg.addChangeListener(
new ChangeListener(){
@Override
public void stateChanged(ChangeEvent arg0) {
// TODO Auto-generated method stub
g=sliderg.getValue();
canvas.setBackground(new Color(r,g,b,a));
canvas.repaint();
progressg.setValue((int)(sliderg.getValue()*100/255));
}
});
sliderb.setPaintLabels(true);
sliderb.setPaintTicks(true);
sliderb.setPaintTrack(true);
sliderb.setMinimum(0);
sliderb.setMaximum(255);
sliderb.setValue(0);
sliderb.setBorder(titleborder3);
sliderb.addChangeListener(
new ChangeListener(){
public void stateChanged(ChangeEvent e){
b=sliderb.getValue();
canvas.setBackground(new Color(r,g,b,a));
canvas.repaint();
progressb.setValue((int)(sliderb.getValue()*100/255));
}
});
slidera.setPaintLabels(true);
slidera.setPaintTicks(true);
slidera.setPaintTrack(true);
slidera.setMinimum(0);
slidera.setMaximum(255);
slidera.setValue(0);
slidera.setBorder(titleborder4);
slidera.addChangeListener(
new ChangeListener(){
public void stateChanged(ChangeEvent e){
a=slidera.getValue();
canvas.setBackground(new Color(r,g,b,a));
canvas.repaint();
progressa.setValue((int)(slidera.getValue()*100/255));
}
});
jpane1.add(canvas);
//canvas.setBackground(new Color(r,g,b,a));
jpane1.add(label1);
jpane2.setBounds(new Rectangle(100,350,500,250));
flow.setRows(2);
flow.setColumns(2);
flow.setHgap(50);
flow.setVgap(50);
jpane2.setLayout(flow);
jpane2.setToolTipText("控制台");
this.getContentPane().add(jpane1,BorderLayout.NORTH);
// jpane2.add(label1);
jpane2.add(sliderr);
//jpane2.add(label2);
jpane2.add(sliderg);
// jpane2.add(label3);
jpane2.add(sliderb);
// jpane2.add(label4);
jpane2.add(slidera);
this.getContentPane().add(jpane2,BorderLayout.SOUTH);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
TiaoSeBan t=new TiaoSeBan();
t.pack();
t.setVisible(true);
}
}
class ColorCanvas extends Canvas{
public ColorCanvas(){
}
}
通过JSlider控制的画板调色窗口
最新推荐文章于 2024-09-23 15:50:28 发布