Hallo Leute, ich habe ein kleines Programm um die Komponente JSlider erweitert. Hiermit wollte ich erreichen, dass ich den Text, welcher sich in dem Label oder auch in dem Textfield befindet, in der Größe verändern kann. Also wenn ich den Regler nach rechts bewege, dann soll die Schrift größer werden und wenn ich den Regler nach links bewege, soll die Schrift kleiner werden.
Hat hier jemand einen Tipp, was ich bei dem bestehenden Code hierfür noch ändern müsste?
Code:
[/code]
Für Tipps bin ich dankbar.
Lg
Hat hier jemand einen Tipp, was ich bei dem bestehenden Code hierfür noch ändern müsste?
Code:
Java:
[code]
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class Fenster extends JFrame implements ActionListener, ChangeListener
{
private static final long serialVersionUID = 1L;
Container c;
JButton b1,b2,b3,b4;
JSlider grokle;
public Fenster()
{
setLayout(new FlowLayout());
setSize(300, 300);
add(b1=new JButton("schliessen"));
b1.addActionListener(this);
b1.setActionCommand("schliessen");
add(b2=new JButton("vergroessern"));
b2.addActionListener(this);
b2.setActionCommand("vergroessern");
add(b3=new JButton("verkleinern"));
b3.addActionListener(this);
b3.setActionCommand("verkleinern");
add(b4=new JButton("Text anzeigen"));
b4.addActionListener(this);
b4.setActionCommand("Text anzeigen");
add(grokle=new JSlider(JSlider.HORIZONTAL,0,48,2));
grokle.setName("gross/klein");
grokle.addChangeListener(this);
grokle.setMajorTickSpacing(6);
grokle.setMinorTickSpacing(2);
grokle.setPaintTicks(true);
grokle.setPaintLabels(true);
grokle.setPreferredSize(new Dimension(200,50));
setVisible(true);
}
public static void main(String[] args)
{
new Fenster();
}
@Override
public void actionPerformed(ActionEvent arg0)
{
if(arg0.getActionCommand().equals("schliessen"))
{
setTitle("X");
setLayout(new GridLayout(2,2));
try
{
Thread.sleep(1500);
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"Fehler");
}
dispose();
}
else if(arg0.getActionCommand().equals("vergroessern"))
{
try
{
Thread.sleep(100);
}catch(Exception e)
{
JOptionPane.showMessageDialog(null,"Fehler");
}
setLayout(new FlowLayout());
setLocation(400, 200);
setSize(600, 600);
setVisible(true);
}
else if(arg0.getActionCommand().equals("verkleinern"))
{
try
{
Thread.sleep(200);
}catch(Exception e)
{
JOptionPane.showMessageDialog(null,"Fehler");
}
setLayout(new FlowLayout());
setSize(200, 200);
setVisible(true);
}
else if(arg0.getActionCommand().equals("Text anzeigen"))
{
setLayout(new FlowLayout());
JLabel l=new JLabel();
setSize(200, 200);
remove(b1);
remove(b2);
remove(b3);
remove(b4);
repaint();
l.setOpaque(true);
l.setText("Hallo");
add(l);
setVisible(true);
}
}
@Override
public void stateChanged(ChangeEvent arg0)
{
JSlider source;
source=(JSlider)arg0.getSource();
if(source.getName().equals("gross/klein"))
{
JLabel l=new JLabel();
l.setText("Hallo");
//so funktioniert es leider nicht
l.resize(source.getValue(), source.getValue());
repaint();
}
}
}
Für Tipps bin ich dankbar.
Lg