如题,小弟是一个新手才学java不到一个月,现在在试着写一个仿QQ的程序,想请教大侠QQ2011中的那个QQ账号下拉效果和在线状态效果如何实现(最好是用awt或是swing方法实现的)效果如下图 

解决方案 »

  1.   

    /*用awt组件给你写了个简单的,没有swing的美观!你可以自己在改成Swing组件的……*/
    import java.awt.Frame;
    import java.awt.Button;
    import java.awt.Color;
    import java.awt.TextField;
    import java.awt.Label;
    import java.awt.Checkbox;
    import java.awt.Choice;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    public class QQKuangJia implements ActionListener{
    TextField te2;
       public  QQKuangJia(){
      Frame fr=new Frame("欢迎使用QQ2011");
      fr.setLayout(null);
        fr.setBackground(Color.pink);
        fr.setBounds(400,300,500,300);
      Label la1=new Label("QQ账号:");
      Label la2=new Label("QQ密码:");
      Label la3=new Label("状态:");
        la1.setBounds(120,60,60,20);
        la2.setBounds(120,120,60,20);
        la3.setBounds(60,240,40,20);
      Choice cho1=new Choice();
        cho1.add("须输入数字");
        cho1.add("123456");
        cho1.add("234678035");
        cho1.add("989659585");
        cho1.add("");
        cho1.add("");
        cho1.add("");
        cho1.add("");
        cho1.setBounds(180,57,200,20);
        te2=new TextField();
        te2.setEchoChar('*');
        te2.setBounds(180,117,200,20);
        te2.addActionListener(this);   
      Checkbox ch1=new Checkbox("记住密码",false);
        ch1.setBounds(180,180,80,20);
      Checkbox ch2=new Checkbox("自动登录",false);
        ch2.setBounds(360,180,80,20);
      Choice cho=new Choice();
        cho.add("O(∩_∩)O我在线上");
        cho.add("o(>﹏<)o隐身");
        cho.add(" ~~o(>_<)o ~~Q我吧");
        cho.add("( ^_^ )/~~离开");
        cho.add("(⊙_⊙?)忙碌");
        cho.add("(╰_╯)#请勿打扰");
        cho.setBounds(100,240,130,20);
        Button bu1=new Button("设置");
        Button bu2=new Button("登录");
        bu1.setBounds(260,240,40,20);
        bu2.setBounds(400,240,40,20);
        fr.add(bu2);
        fr.add(bu1);
        fr.add(cho);
        fr.add(cho1);
        fr.add(ch1);
        fr.add(ch2);
        fr.add(te2);
        //fr.add(te1);
        fr.add(la1);
        fr.add(la2);
        fr.add(la3);
        fr.setResizable(false);
        fr.setVisible(true);
        fr.addWindowListener(                      //匿名类监听
             new WindowAdapter() {
               public void windowClosing(WindowEvent e) {             
                 System.exit(0);
               }
             });  
       
       }
    public void actionPerformed(ActionEvent e) {
     JOptionPane.showMessageDialog(null,"由于时间紧迫在这我没有给你写监听后的动作,自己写吧!","提示",JOptionPane.INFORMATION_MESSAGE);
    }
    public  static void main(String args[]){
    new QQKuangJia();
    }
       
      }