首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JToggleButton API中可能存在错误?

JToggleButton API中可能存在错误?
EN

Stack Overflow用户
提问于 2013-04-04 05:13:18
回答 2查看 268关注 0票数 1

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

代码:

代码语言:javascript
复制
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);
 }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-04 05:36:54

MetalLookAndFeel - getPreferredSize计算不正确

SystemLookAndFeel

Nimbus

物质

from代码(与JFrame相同的问题,JPanel通过使用BorderLayout作为容器)

代码语言:javascript
复制
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);
            }
        });
    }
}
票数 2
EN

Stack Overflow用户

发布于 2013-04-04 05:24:14

对我来说似乎没什么问题。

代码语言:javascript
复制
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);
            }

        });
    }

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15798240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档