我从 java2s 得到了 JToggleButton 的例子.在代码中,我看到如果文本是“West”,则切换按钮无法正确显示文本。西方显示为我们...其他一切都很好。但是当text="west",即w小的时候就没有问题了。这是错误吗?
代码:
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);
}
}
最佳答案
MetalLookAndFeel - getPreferredSize 计算不正确
系统外观
光轮
物质
来自代码(使用 BorderLayout 将 JFrame、JPanel 作为容器的相同问题)
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);
}
});
}
}
关于java - JToggleButton API 中可能存在错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15798240/