Jeg vil gerne give brugeren mulighed for at ændre
fontstørrelsen i en kørende applikation (Vha. af
en JSlider()). Men ligegyldigt hvad jeg gør bliver
den ved med at bruge den gamle størrelse.
Er der nogen der kan se hvad jeg gør galt - eller
kan det overhovedet lade sig gøre?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class FontSize extends JFrame
{
...
public FontSize()
{
super("Indstillinger");
options = new JPanel();
options.setLayout(new GridLayout(0, 1, 2, 2));
thisFont = options.getFont();
fontSize = new JSlider(JSlider.HORIZONTAL, 8,
48, thisFont.getSize());
fontSize.addChangeListener(new ChangeListener()
{
public void stateChanged(ChangeEvent e)
{
JSlider src = (JSlider)e.getSource();
if (!src.getValueIsAdjusting())
{
thisFont = thisFont.deriveFont((float)
src.getValue());
/* Som i kan se har jeg prøvet lidt af
hvert
*/
fontSize.setFont(thisFont);
/* Giver null pointer exception...*/
//fontSize.updateUI();
//UIManager.put("Panel.font",thisFont);
//pack();
//revalidate();
//doLayout();
fontSize.repaint();
}
}
});
options.add(fontSize);
setContentPane(options);
pack();
setVisible(true);
}
}
Venlig hilsen
--
Max