3

我正在使用 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);

  }

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

4

1 回答 1

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 使用什么布局管理器?

于 2012-06-19T18:51:16.673 回答