[英]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.