import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import javax.swing.border.*;
import javax.swing.*;
class SliderF extends JFrame implements ChangeListener, ActionListener {
JLabel l1;
JSlider s;
JPanel p, pi;
DisquePanel dp;
JButton changeLAF;
int diametre = 50;
Color clr = Color.red;
UIManager.LookAndFeelInfo laf[];
int lafNo = 0;
class DisquePanel extends JPanel {
DisquePanel() {
setPreferredSize(new Dimension(130,130));
}
public void paint(Graphics g) {
g.setColor(clr);
g.fillOval(65-diametre/2,65-diametre/2,diametre, diametre);
}
}
public void init() {
laf = UIManager.getInstalledLookAndFeels();
getContentPane().add(p = new JPanel());
BoxLayout bxl = new BoxLayout(p, BoxLayout.Y_AXIS);
p.setLayout(bxl);
p.add(l1 = new JLabel("LAF: " + UIManager.getLookAndFeel().getName()));
l1.setBorder(BorderFactory.createMatteBorder(5, 8, 5, 8, Color.orange));
p.add(s = new JSlider(0,120,40));
s.setMajorTickSpacing(30);
s.setMinorTickSpacing(5);
s.setPaintTicks(true);
s.addChangeListener(this);
p.add(pi = new JPanel());
pi.add(dp = new DisquePanel(), BorderLayout.CENTER);
pi.setBorder(BorderFactory.createEtchedBorder());
p.add(changeLAF = new JButton("Change"));
changeLAF.addActionListener(this);
setSize(300,250);
setVisible(true);
}
public void stateChanged(ChangeEvent e) {
if (e.getSource() == s) diametre = s.getValue();
repaint();
}
public void actionPerformed(ActionEvent e) {
lafNo = (lafNo + 1) % laf.length;
try {
UIManager.setLookAndFeel(laf[lafNo].getClassName());
SwingUtilities.updateComponentTreeUI(this);
}
catch (Exception exc) {
}
l1.setText("LAF: " + UIManager.getLookAndFeel().getName()
+ "(" + lafNo + ")");
repaint();
}
}
public class SF {
public static void main(String[] sss) {
SliderF sf = new SliderF();
sf.init();
}
}