[英]Stack GUI in java swing
我正在创建堆栈的GUI。 这是我的代码
private void StackActionPerformed(java.awt.event.ActionEvent evt) {
b1=new JButton("Push");
b2=new JButton("Pop");
b3=new JButton("Peek");
b4=new JButton("Clear");
b1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
pushButtonActionPerformed(evt);
}
});
tb.add(b1);
tb.add(b2);
tb.add(b3);
tb.add(b4);
frame_st.add(tb);
revalidate();
repaint();
frame_st.setSize(1022, 534);
drawstack();
}
public void drawstack()
{
m1.setBorder(BorderFactory.createRaisedSoftBevelBorder());
m1.setBackground(Color.white);
m1.setLayout(null);
JLabel l1=new JLabel("STACK");
l1.setBounds(500, 5, 100, 70);
m1.add(l1);
}
我的代码完美地编译了drawstack()绘制了所需的东西,但是因为drawstack()称为我的按钮,这些按钮存在于StackActionPerformed(java.awt.event.ActionEvent evt)中,即b1,b2等不可见。 我不希望这种情况发生。 我希望我的按钮始终可见。 请帮忙 。 m1是覆盖我整个框架的面板。
我猜你在按钮(和frame_st
)的顶部放了m1
。 我直接将按钮放在m1
。 像这样的Windows是Container对象。 它们上面放置了(子)容器,上面放置了(sub)(sub)容器,等等。您需要保持特定级别的所有容器在其父对象上的布局方式。 如果它们重叠而不是邻接,那么您有问题。
我发现javax.swing.Box是布置窗口最有用,最简单的类,我向您推荐。 在整个窗口上放一个垂直框。 然后将frame_st
为水平Box,将其添加到垂直Box中,然后像执行操作一样添加按钮。 然后将m1
(无论是多少)添加到垂直Box中,您应该会很好。
javax.swing.Box并不是解决世界上所有问题的解决方案,但它应该可以帮助您入门。 按钮显示后,您可以尝试其他方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.