簡體   English   中英

Java Swing中的堆棧GUI

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM