Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有垂直文本的java swing单选按钮_Java_Swing - Fatal编程技术网

带有垂直文本的java swing单选按钮

带有垂直文本的java swing单选按钮,java,swing,Java,Swing,尝试使用swing在java中获得如下单选按钮: * * * O A O F U N F T O …单选按钮*在哪里 这些字母可以是正面朝上的,也可以是正面朝上的,我真的不在乎。我只希望按钮在顶部,每个按钮下面的字母在一个窄列中 尝试在“绘制”方法中使用图形旋转,但当我将鼠标悬停在它上面时,它会出错,在不旋转的情况下重新绘制按钮。似乎我需要的是类似于BoxLayout的东西,但它也会旋转90度,或者JPanel和按钮之间的另一层 public class OffA

尝试使用swing在java中获得如下单选按钮:

 *  *  *
 O  A  O
 F  U  N
 F  T
    O
…单选按钮*在哪里

这些字母可以是正面朝上的,也可以是正面朝上的,我真的不在乎。我只希望按钮在顶部,每个按钮下面的字母在一个窄列中

尝试在“绘制”方法中使用图形旋转,但当我将鼠标悬停在它上面时,它会出错,在不旋转的情况下重新绘制按钮。似乎我需要的是类似于BoxLayout的东西,但它也会旋转90度,或者JPanel和按钮之间的另一层

public class OffAutoOn extends JPanel {

    public OffAutoOn ()
    {
        JRadioButton b1 = new JRadioButton ("OFF");
        JRadioButton b2 = new JRadioButton ("AUTO");
        JRadioButton b3 = new JRadioButton ("ON");

        ButtonGroup bg = new ButtonGroup ();
        bg.add (b1);
        bg.add (b2);
        bg.add (b3);

        setLayout (new BoxLayout (this, BoxLayout.Y_AXIS));
        add (b1);
        add (b2);
        add (b3);
    }

    @Override
    public void paint (Graphics g)
    {
        Graphics2D g2d = (Graphics2D) g;
        AffineTransform at = g2d.getTransform ();
        try {
            int w = getWidth ();
            int h = getHeight ();
            g2d.rotate (Math.PI / 2, w / 2, h / 2);
            super.paint (g);
        } finally {
            g2d.setTransform (at);
        }
    }
}

可以使用HTML为按钮创建垂直文本,然后可以更改文本相对于图标的默认位置

例如:

String text = "<html>A<br>u<br>t<br>o</html";
JRadioButton button = new JRadioButton( text );
button.setHorizontalTextPosition(JRadioButton.CENTER);
button.setVerticalTextPosition(JRadioButton.BOTTOM);

好吧,它的工作,希望有一些旋转的事情或文字基线,但这将做!thanks@mrieker,很高兴这有帮助。别忘了接受答案,这样人们就知道问题已经解决了。他们似乎不想让任何接受按钮变得明显,是吗?