大家都熟悉QQ,当我们聊天的时候,点击“消息记录”按钮,右方就会伸展出一个窗体,再次点击右方的窗体就消失,这是怎么实现的呢?是直接改变窗体的大小呢还是其他的方法?请给个简单的例子小弟参考下,谢谢!

解决方案 »

  1.   

    李刚的<<疯狂java讲义>>有一例子,我不太记得了。不过我觉得这个实现可以通过设置按钮,然后弄一个窗体,需要时候实现窗体得隐藏与再现,这样就可以了!
      

  2.   

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;public class Test
    {
        public static void main(String[] args) 
        {
         final JFrame frame = new JFrame();
         frame.setSize(800, 600);
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         JPanel pnlMain = new JPanel(new BorderLayout());
         JTextArea txaMain = new JTextArea();
         final JTextArea txaRight = new JTextArea();
         final JButton btnPop = new JButton(">>");
         btnPop.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent event) {
         frame.setSize(txaRight.isVisible() ? 800 : 900, 600);
         txaRight.setVisible(!txaRight.isVisible());
         btnPop.setText(txaRight.isVisible() ? "<<" : ">>");
         }
         });
         txaRight.setPreferredSize(new Dimension(100, 0));
         txaRight.setVisible(false);
         pnlMain.add(txaMain, BorderLayout.CENTER);
         pnlMain.add(btnPop, BorderLayout.EAST);
         frame.add(pnlMain, BorderLayout.CENTER);
         frame.add(txaRight, BorderLayout.EAST);
         frame.setVisible(true);
        }
    }时间仓促,只能硬编码了,上面其实还有很多能改进的地方,希望楼主会有启发。