Die Zoomenfunktion funktioniert nicht, wenn ich SetFont mit einem Etikett/einem Textbereich verwendeJava

Java-Forum
Anonymous
 Die Zoomenfunktion funktioniert nicht, wenn ich SetFont mit einem Etikett/einem Textbereich verwende

Post by Anonymous »

Ich habe eine Zoomfunktion für alle meine Anwendungen implementiert. Aber es funktioniert nicht, wenn ich SetFont für eine Komponente verwende. Es gibt Beschriftungen und Textbereiche, in denen ich einen bestimmten Typ (kursiv und/oder fett) oder eine bestimmte Schriftfamilie (d. H. San Serif) möchte. Wenn ich setfont () beim Erstellen dieser Komponenten verwende, funktioniert die Zoom -Funktion nicht. Ich habe versucht, Setfont für die Komponenten zu fangen, aber sie werden nie gerufen. Irgendwelche Ideen warum? Meine Zoomklasse/meine Komponente ist angehängt (danke Stapelüberlauf für den Basiscode!)

Code: Select all

public final class ZoomControl extends JPanel implements ActionListener {
// --------------------------------------------------------------------------
// variables
// --------------------------------------------------------------------------
private final Frame mFrame;
private final JLabel mText = new JLabel(" Zoom ");
private final JMenuItem mIncrease = new JMenuItem(" + ");
private final JMenuItem mDecrease = new JMenuItem(" - ");
// --------------------------------------------------------------------------
// constructor
// --------------------------------------------------------------------------
/**
* @param frame Specifies the frame upon which to update after changing
*              the fonts.
*/
public ZoomControl(final Frame frame) {
super(new FlowLayout());
CommonUtils.checkParameterNull("frame", frame);
mFrame = frame;
add(mIncrease);
add(mText);
add(mDecrease);
mIncrease.addActionListener(this);
mIncrease.setBorder(BorderFactory.createEmptyBorder());
mDecrease.addActionListener(this);
mDecrease.setBorder(BorderFactory.createEmptyBorder());
}
// --------------------------------------------------------------------------
// methods
// --------------------------------------------------------------------------
/**
* @see ActionListener#actionPerformed(ActionEvent)
*/
@Override
public void actionPerformed(final ActionEvent evt) {
Object obj = evt.getSource();
if (obj ==  mIncrease) {
changeUIFonts(1);
} else if (obj == mDecrease) {
changeUIFonts(-1);
}
}
/** Change all the fonts for the application as specified by the size.
* @param size
*/
private void changeUIFonts(final int size) {
UIDefaults myDefaults = UIManager.getDefaults();
for (Enumeration e = myDefaults.keys(); e.hasMoreElements(); ) {
final Object key = e.nextElement();
final Object value = myDefaults.get(key);
if (value instanceof Font) {
final Font font = (Font) value;
final int newSize = Math.round(font.getSize() + size);
if (value instanceof FontUIResource) {
myDefaults.put(key, new FontUIResource(font.getName(),
font.getStyle(), newSize));
} else {
myDefaults.put(key, new Font(font.getName(),
font.getStyle(), newSize));
}
}
}
SwingUtilities.updateComponentTreeUI(mFrame);
mFrame.pack();
}
} ```

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post