23. februar 2005 - 13:35Der er
5 kommentarer og 1 løsning
Font størrelse skal følge størrelse på JLabel
Hej,
Jeg vil gerne at font størrelsen brugt i en JLabel følger størrelsen på JLabel'en. Altså når JLabel'en bliver resized, så sættes der en ny font, der passer med den nye størrelse.
synchronized public void componentResized(ComponentEvent e) { final SwingWorker worker = new SwingWorker() { private Font font; private Insets insets = getInsets(); private int windowWidth = getWidth() - insets.left - insets.right; private int windowHeight = getHeight() - insets.top - insets.bottom; private int fontSize = windowHeight; private FontMetrics metrics; private int height, width; public Object construct() { // executed in background thread do { font = new Font("Verdana", Font.BOLD, fontSize--); metrics = getGraphics().getFontMetrics(font); height = metrics.getHeight(); width = metrics.stringWidth(getText()); } while (height > windowHeight || width > windowWidth); return null; } public void finished() { // executed in event dispatching thread setFont(font); } }; worker.start(); }
public void componentMoved(ComponentEvent e) { }
public void componentShown(ComponentEvent e) { }
public void componentHidden(ComponentEvent e) { } }
Problemet med ovenstående er, at det tager et stykke tid (nogle sekunder) at udregne fontstørrelsen. Er der nogle, der kan komme op med en bedre metode til dette?
font = new Font("Verdana", Font.BOLD, fontSize-2); setFont(font); }
public void componentMoved(ComponentEvent e) { }
public void componentShown(ComponentEvent e) { }
public void componentHidden(ComponentEvent e) { } }
Synes godt om
Slettet bruger
25. februar 2005 - 11:37#4
Jeg har i mellemtiden droppet Swing helt, og bruger bare Graphicd2D pakken til at tegne strengen i den rigtige størrelse. Så spørgsmålet er ikke længere relevant for mig.
Hvis du vil have points for din indsats, kan du bare lægge et svar.
Jeg vil selvfølgelig ikke være ked af at få point, når jeg nu har brugt energi på det, men jeg forstår udmærket godt dit valg.
Synes godt om
Slettet bruger
25. februar 2005 - 12:02#6
Det skal du selvfølgelig også have.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.