使用Java的Stack的GUI

时间:2012-06-19 18:28:16

标签: java swing user-interface

我使用Java制作Stack的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);
      frame_st.setExtendedState(Frame.MAXIMIZED_BOTH);

  }

这里我向我的toolBar添加按钮(tb)一切正常。我没有收到任何错误。但编译后我没有得到理想的结果。 toolBar(tb)无法添加按钮(b1,b2等)

1 个答案:

答案 0 :(得分:2)

如果您在渲染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);
   frame_st.setExtendedState(Frame.MAXIMIZED_BOTH);
   JPanel contentPane = (JPanel)frame.getContentPane();
   contentPane.revalidate();
   contentPane.repaint();
}

此处的关键是你的tb JPanel和JFrame contentPane使用的布局管理器是什么?