【发布时间】:2011-05-16 12:15:56
【问题描述】:
这可能是在深夜发布的一个非常愚蠢的问题。我正在尝试创建两个 JButton,将一个放在另一个之上。但是由于某种原因,它没有正确对齐。底部按钮 b2 的左边缘出现在顶部底部 b1 左边缘的稍微左侧。
代码如下:
class thistrial extends JPanel implements ActionListener
{
...
public thistrial()
{
.....
add(new JSeparator(SwingConstants.HORIZONTAL));
//ADD THE START AND STOP BUTTONS
Border raisedBorder = BorderFactory.createRaisedBevelBorder();
b1 = new JButton("START");
b1.setVerticalTextPosition(AbstractButton.CENTER);
b1.setHorizontalTextPosition(AbstractButton.CENTER);
b1.setPreferredSize(new Dimension(220,100));
add(new JSeparator(SwingConstants.HORIZONTAL));
b2 = new JButton("STOP");
b2.setPreferredSize(new Dimension(220,100));
b2.setVerticalTextPosition(AbstractButton.CENTER);
b2.setHorizontalTextPosition(AbstractButton.CENTER);
add(b1);
add(b2);
.............
}
}
/** MAIN function **/
public static void main(String args[])
{
//Create and set up the window.
JFrame frame = new JFrame();
frame.getContentPane().setBackground(Color.BLACK);
frame.setSize(398,480);
frame.setLocation(300,200);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
thistrial newContentPane = new thistrial();
frame.setContentPane(newContentPane);
//Display the window.
frame.setVisible(true);
}
我该怎么办?
【问题讨论】:
-
你没有给我们正确的代码部分。显然颜色信息是无关紧要的。查看将按钮添加到面板的代码很重要。另外你有
setLayout吗? -
很抱歉。没有设置布局。我正在使用默认的 LayoutManager。我已经添加了上面的实际代码。
-
重新格式化的代码;复制编辑;如果不正确,请恢复。
-
“实际代码”不可编译,因此我们仍然无法准确判断您在做什么。如果使用适当布局的建议没有帮助,请发布您的 SSCCE (sscce.org) 来说明问题。
-
谢谢大家。我通过调整一些控件的大小来让它工作。由于我使框架不可调整大小,因此我不必担心屏幕发生变化时的外观。再次感谢。
标签: java swing vertical-alignment jbutton