Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #36076
| Newsgroups | comp.lang.java.programmer |
|---|---|
| Date | 2016-12-09 11:35 -0800 |
| References | <75624c6e-6a78-4e8a-82a4-4ff2556cc241@googlegroups.com> |
| Message-ID | <5bda0936-09ee-4eea-8001-e0ad17f31b0b@googlegroups.com> (permalink) |
| Subject | Re: When resizing text to fill a JLabel the text sometimes "jiggles", how do I fix this? |
| From | The Kreepy Gamer <tylerc2077@gmail.com> |
Thanks for your help! I hope I got it right this time. :)
In my GUI program, I have a thread with a while loop that resizes the text to fit into the various JLabels and JButtons that are on it. But sometimes when the text is a certain width it will get bigger and smaller. For example, it will have text in the font size 26, it loops and resizes it to 20. Then it loops again and changes it back to 26, creating a "jiggling" effect.
import java.awt.Component;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Fonts {
static JLabel label = new JLabel("text that \"jiggles\" ");
public Fonts() {
JFrame window = new JFrame("Test");
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setSize(300,300);
label.setHorizontalAlignment(JLabel.CENTER);
window.add(label);
window.setVisible(true);
}
public static void main(String[] args) {
new Fonts();
Thread thread = new Thread(new Runnable() {
public void run() {
while (true) {
label.setFont(getMaxFontSize(label,label.getText()));
}
}
});
thread.run();
}
public static Font getMaxFontSize(Component comp, String text) {
Font compFont = comp.getFont();
String compText = text;
int stringWidth = comp.getFontMetrics(compFont)
.stringWidth(compText);
int compWidth = comp.getWidth()-75;
if (stringWidth == 0) {
stringWidth++;
}
while (compWidth < 0) {
compWidth++;
}
double widthRatio = (double)compWidth / (double)stringWidth;
int newFontSize = (int)(compFont.getSize() * widthRatio);
int compHeight = comp.getHeight();
int fontSizeToUse = Math.min(newFontSize, compHeight);
if (fontSizeToUse < 1) {
return new Font(compFont.getName(), Font.PLAIN, 1);
}
return new Font(compFont.getName(), Font.PLAIN, fontSizeToUse);
}
}
Does anyone know why it is doing this, and how I could fix it?
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
When resizing text to fill a JLabel the text sometimes "jiggles", how do I fix this? The Kreepy Gamer <tylerc2077@gmail.com> - 2016-12-06 15:21 -0800
Re: When resizing text to fill a JLabel the text sometimes "jiggles", how do I fix this? Knute Johnson <nospam@rabbitbrush.frazmtn.com> - 2016-12-07 13:36 -0600
Re: When resizing text to fill a JLabel the text sometimes "jiggles", how do I fix this? The Kreepy Gamer <tylerc2077@gmail.com> - 2016-12-08 12:48 -0800
Re: When resizing text to fill a JLabel the text sometimes "jiggles", how do I fix this? Knute Johnson <nospam@rabbitbrush.frazmtn.com> - 2016-12-08 15:30 -0600
Re: When resizing text to fill a JLabel the text sometimes "jiggles", how do I fix this? Martin Gregorie <martin@address-in-sig.invalid> - 2016-12-08 22:17 +0000
Re: When resizing text to fill a JLabel the text sometimes "jiggles", how do I fix this? Arne Vajhøj <arne@vajhoej.dk> - 2016-12-08 20:09 -0500
Re: When resizing text to fill a JLabel the text sometimes "jiggles", how do I fix this? Gene Wirchenko <genew@telus.net> - 2016-12-09 09:07 -0800
Re: When resizing text to fill a JLabel the text sometimes "jiggles", how do I fix this? Martin Gregorie <martin@address-in-sig.invalid> - 2016-12-09 20:01 +0000
Re: When resizing text to fill a JLabel the text sometimes "jiggles", how do I fix this? Nigel Wade <nmw@local.domain> - 2016-12-09 10:54 +0000
Re: When resizing text to fill a JLabel the text sometimes "jiggles", how do I fix this? The Kreepy Gamer <tylerc2077@gmail.com> - 2016-12-09 11:35 -0800
Re: When resizing text to fill a JLabel the text sometimes "jiggles", how do I fix this? Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-12-09 15:32 -0500
Re: When resizing text to fill a JLabel the text sometimes "jiggles", how do I fix this? Martin Gregorie <martin@address-in-sig.invalid> - 2016-12-09 21:22 +0000
Re: When resizing text to fill a JLabel the text sometimes "jiggles", how do I fix this? Martin Gregorie <martin@address-in-sig.invalid> - 2016-12-12 12:08 +0000
Re: When resizing text to fill a JLabel the text sometimes "jiggles", how do I fix this? Arne Vajhøj <arne@vajhoej.dk> - 2016-12-11 20:48 -0500
Re: When resizing text to fill a JLabel the text sometimes "jiggles", how do I fix this? The Kreepy Gamer <tylerc2077@gmail.com> - 2016-12-12 11:18 -0800
Re: When resizing text to fill a JLabel the text sometimes "jiggles", how do I fix this? Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-12-12 14:22 -0500
Re: When resizing text to fill a JLabel the text sometimes "jiggles", how do I fix this? Arne Vajhøj <arne@vajhoej.dk> - 2016-12-12 20:15 -0500
csiph-web