我从java2s得到了一个JToggleButton的例子。在代码中,我看到如果文本是"West“,切换按钮不能正确显示文本。West显示为我们..。其他的都很好。但当text = "west“时,也就是小的时候没有问题。这是一个bug吗?

代码:
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JToggleButton;
public class MainClass {
public static void main(String args[]) {
JFrame f = new JFrame("JToggleButton Sample");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new JToggleButton("North"), BorderLayout.NORTH);
f.add(new JToggleButton("East"), BorderLayout.EAST);
f.add(new JToggleButton("West"), BorderLayout.WEST);
f.add(new JToggleButton("Center"), BorderLayout.CENTER);
f.add(new JToggleButton("South"), BorderLayout.SOUTH);
f.setSize(300, 200);
f.setVisible(true);
}
}发布于 2013-04-04 05:36:54
MetalLookAndFeel - getPreferredSize计算不正确

SystemLookAndFeel

Nimbus

物质

from代码(与JFrame相同的问题,JPanel通过使用BorderLayout作为容器)
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JToggleButton;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
public class MainClass {
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(
"org.pushingpixels.substance.api.skin.SubstanceOfficeBlue2007LookAndFeel");
//UIManager.getDefaults();
} catch (Exception e) {
}
}
});
/*try {
//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
for (UIManager.LookAndFeelInfo laf : UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(laf.getName())) {
UIManager.setLookAndFeel(laf.getClassName());
}
}
} catch (Exception e) {
e.printStackTrace();
}*/
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame f = new JFrame("JToggleButton Sample");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.add(new JToggleButton("North"), BorderLayout.NORTH);
panel.add(new JToggleButton("East"), BorderLayout.EAST);
panel.add(new JToggleButton("West"), BorderLayout.WEST);
panel.add(new JToggleButton("Center"), BorderLayout.CENTER);
panel.add(new JToggleButton("South"), BorderLayout.SOUTH);
f.add(panel);
f.pack();
//f.setSize(300, 200);
f.setVisible(true);
}
});
}
}发布于 2013-04-04 05:24:14
对我来说似乎没什么问题。


import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JToggleButton;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class TestLayout23 {
public static void main(String[] args) {
new TestLayout23();
}
public TestLayout23() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException ex) {
} catch (InstantiationException ex) {
} catch (IllegalAccessException ex) {
} catch (UnsupportedLookAndFeelException ex) {
}
JFrame f = new JFrame("JToggleButton Sample");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new JToggleButton("North"), BorderLayout.NORTH);
f.add(new JToggleButton("East"), BorderLayout.EAST);
f.add(new JToggleButton("West"), BorderLayout.WEST);
f.add(new JToggleButton("Center"), BorderLayout.CENTER);
f.add(new JToggleButton("South"), BorderLayout.SOUTH);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
});
}
}https://stackoverflow.com/questions/15798240
复制相似问题