有个APPLICATION要求是点击菜单中的选项面板上立刻出现文字,
但你我现在做到的是要最大化最小化后才能出现相应文字,听说是repaint函数的问题,不知道应该放在哪里。谢谢了

解决方案 »

  1.   

    repaint放在函数点击菜单中的选项面板上的事件里
      

  2.   

    ActionListener 类似里比较好,
      

  3.   

    import java.awt.*;
    import java.awt.event.*;public class PeopleManagement extends Frame implements ActionListener,
    WindowListener {
    // insert,update,quit
    private MenuItem zhuce = new MenuItem("注册");
    private MenuItem denglu=new MenuItem("登录");
    private MenuItem gengxin = new MenuItem("更新");
    private MenuItem zhuxiao = new MenuItem("注销");
    private MenuItem tuichu = new MenuItem("退出");
    // assess the performance of an employee formally
    private MenuItem gongzi = new MenuItem("评定工资");
    private MenuItem jintie = new MenuItem("评定津贴");
    // checkout personal info
    private MenuItem renming = new MenuItem("人名");
    private MenuItem zhicheng = new MenuItem("职称");
    // statistics
    private MenuItem tongj = new MenuItem("按类别统计详情");
    // version
    private MenuItem banben = new MenuItem("版本");
    // panel
    private Panel panel1 = new Panel();
    private Panel panel2 = new Panel();
    private Panel panel3 = new Panel();
    private Panel panel4 = new Panel();
    Update update= new Update();
    NewUser newuser = new NewUser();
    Statistics stat = new Statistics();
    Login lg = new Login();
    // constructor
    public PeopleManagement() {
    super("人事管理系统");
    // menubar setting Menu file = new Menu("登录");
    file.add(zhuce);
    zhuce.setEnabled(true);
    file.add(denglu);
    denglu.setEnabled(true);
    file.add(gengxin);
    gengxin.setEnabled(true);
    file.add(zhuxiao);
    zhuxiao.setEnabled(true);
    file.addSeparator();
    file.add(tuichu);
    tuichu.setEnabled(true);
    Menu assess = new Menu("业绩评估");
    assess.add(gongzi);
    gongzi.setEnabled(true);
    assess.add(jintie);
    jintie.setEnabled(true);
    Menu checkout = new Menu("人事查询");
    checkout.add(renming);
    renming.setEnabled(true);
    checkout.add(zhicheng);
    zhicheng.setEnabled(true);
    Menu statistics = new Menu("统计报表");
    statistics.add(tongj);
    tongj.setEnabled(true);
    Menu help = new Menu("帮助");
    help.add(banben);
    help.setEnabled(true);
    MenuBar menubar = new MenuBar();
    menubar.add(file);
    menubar.add(assess);
    menubar.add(checkout);
    menubar.add(statistics);
    menubar.add(help);
    setMenuBar(menubar);
    // panel setting - cardlayout
    panel1.add(newuser);panel2.add(update);panel3.add(stat);panel4.add(lg);
    setLayout(new BorderLayout());
    // addlistener
    tuichu.addActionListener(this);
    banben.addActionListener(this);
    zhuce.addActionListener(this);
    gengxin.addActionListener(this);
    tongj.addActionListener(this);
    denglu.addActionListener(this);
    setExtendedState(MAXIMIZED_BOTH);
    addWindowListener(this);
    setVisible(true); } // implements windowlistener
    public void windowClosing(WindowEvent we) {
    System.exit(0);
    } public void windowOpened(WindowEvent we) {
    } public void windowIconified(WindowEvent we) {
    } public void windowDeiconified(WindowEvent we) {
    } public void windowClosed(WindowEvent we) {
    } public void windowActivated(WindowEvent we) {
    } public void windowDeactivated(WindowEvent we) {
    } // mouse event
    public void actionPerformed(ActionEvent e) {
    if (e.getSource() == tuichu) {
    ConfirmDialog tuichu = new ConfirmDialog(this, "确认", "确定要退出?");
    if (tuichu.isOkay)
    System.exit(0);
    }
    if (e.getSource() == banben) {
    VersionDialog banben = new VersionDialog(this, "版本",
    "1.0");
    }
    if (e.getSource() == zhuce) {
    panel1.invalidate();   
    panel1.repaint();
    panel2.setVisible(false);
    panel3.setVisible(false);
    panel4.setVisible(false);
    add("Center", panel1);
    panel1.show(); }
    if (e.getSource() == gengxin) {

    panel1.setVisible(false);
    panel3.setVisible(false);
    panel4.setVisible(false);
    add("Center", panel2);
    update.repaint();
    panel2.show();

    }
    if(e.getSource()==tongj){

    panel1.setVisible(false);
    panel2.setVisible(false);
    panel4.setVisible(false);
    add("Center", panel3);

    stat.repaint();
    panel3.show();
    }
    if(e.getSource()==denglu){

    panel1.setVisible(false);
    panel2.setVisible(false);
    panel3.setVisible(false);
    add("Center", panel4);

    stat.repaint();
    panel4.show();
    }
    }
    public static void main(String[] args) {
    PeopleManagement peoman = new PeopleManagement();
    }
    }import java.awt.*;
    import java.awt.event.*;
    import java.io.UnsupportedEncodingException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;public class NewUser extends  Panel implements ActionListener {
    private Button quit = new Button("退出");
    private Button sure = new Button("确定");
    private TextField text1 = new TextField(10);
    private TextField text2 = new TextField(10);
    private TextField text3 = new TextField(10);
    private TextField text4 = new TextField(10);
    private TextField text5 = new TextField(10);
    private TextField text6 = new TextField(10);
    private Label title = new Label("注册新用户");
    private Label number = new Label("学号");
    private Label name = new Label("姓名");
    private Label sex = new Label("性别");
    private Label age = new Label("年龄");
    private Label hometown = new Label("籍贯");
    private Label department = new Label("系别"); private void setup() {
    Panel panel1 = new Panel();Panel panel2 = new Panel();
    Panel panel3 = new Panel();Panel panel4 = new Panel();
    Panel panel5 = new Panel();Panel panel6 = new Panel();
    Panel panel7 = new Panel();Panel panel8 = new Panel();
    panel1.setLayout(new FlowLayout());panel1.add(title);
    panel2.setLayout(new FlowLayout());panel2.add(number);panel2.add(text1);
    panel3.setLayout(new FlowLayout());panel3.add(name);panel3.add(text2);
    panel4.setLayout(new FlowLayout());panel4.add(sex);panel4.add(text3);
    panel5.setLayout(new FlowLayout());panel5.add(age);panel5.add(text4);
    panel6.setLayout(new FlowLayout());panel6.add(hometown);panel6.add(text5);
    panel7.setLayout(new FlowLayout());panel7.add(department);panel7.add(text6);
    panel8.setLayout(new FlowLayout());panel8.add(sure);panel8.add(quit);
    setLayout(new GridLayout(10,1));
    add(panel1);add(panel2);add(panel3);add(panel4);
    add(panel5);add(panel6);add(panel7);add(panel8);
    setVisible(true);
    }
    public void actionPerformed(ActionEvent ae) {
    if (ae.getSource() == sure) {
    String url, sql,xuehao,xingming,xingbie,nianling,jiguan,xibie;
    int i;
    xuehao=text1.getText().trim();
    xingming=text2.getText().trim();
    xingbie=text3.getText().trim();
    nianling=text4.getText().trim();
    i=Integer(nianling);
    jiguan=text5.getText().trim();
    xibie=text6.getText().trim();
    Connection conn;
    ResultSet rs;
    Statement stmt;
    try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    // Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    url = "jdbc:odbc:university";
    // url =
    // "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=university";
    conn = DriverManager.getConnection(url, "admin", "123456");// 建立与数据库的连接
    stmt = conn.createStatement();
    sql="select * from student where xuehao='"+number+"'"; 
    rs=stmt.executeQuery(sql);
    sql="insert into student(xuehao,name,sex,age,jiguan,dept)";
    sql=sql+"values('"+xuehao+"','"+xingming+"','"+xingbie+"','"+i+"','"+jiguan+"','"+xibie+"')";
    stmt.execute(sql);
    rs.close();
    stmt.close();
    conn.close();
    } catch (Exception e) {
    System.out.println(e);
    }
    }
    if(ae.getSource() == quit){
    invalidate();
    }
    }
    private void dispose() {
    // TODO Auto-generated method stub

    }
    private int Integer(String nianling) {
    // TODO Auto-generated method stub
    return 0;
    }
    public NewUser() {
    setup();
    sure.addActionListener(this);
    quit.addActionListener(this);

    }
    }