多窗体
多窗体,这是小编结合前面发的几篇而写成的。通过登录页面登录后,进入到另一个页面。java的窗体一般是通过 java.awt.* awt 这个类来实现的。
登录页面代码: import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JOptionPane; public class UserLogin implements ActionListener { Frame app = new Frame("登录窗体"); Label lblName = new Label("登录名:"); static TextField txtName = new TextField(); Label lblPass = new Label("密码:"); static TextField txtPass = new TextField(); // 新添加一个Button 按钮 Button bt = new Button("确定登录"); Button bt2 = new Button("退出登录"); public UserLogin(){ app.setSize(300, 200); app.setLayout(null); lblName.setBounds(60, 50, 70, 20); txtName.setBounds(135, 50, 100, 20); txtName.addKeyListener(new KeyHandler()); txtName.addFocusListener(new FocusHandler()); lblPass.setBounds(60, 90, 70, 20); txtPass.setBounds(135, 90, 100, 20); txtPass.addKeyListener(new KeyHandler()); txtPass.addFocusListener(new FocusHandler()); app.add(lblName); app.add(txtName); app.add(lblPass); app.add(txtPass); // 将Button 按钮放入窗体中去。 app.add(bt); app.add(bt2); bt.setBounds(55, 140, 60, 30); bt2.setBounds(182, 140, 60, 30); bt.addActionListener(this); bt2.addActionListener(this); app.setLocation(200, 100); app.setBackground(Color.orange); app.setResizable(false); app.setVisible(true); } public static void main(String[] args) { UserLogin tft = new UserLogin(); } public void actionPerformed(ActionEvent e){ Object ob = e.getSource(); if (ob == bt2){ System.exit(0); } else if(ob == bt) { new ScrollbarTest(); } } } class KeyHandler implements KeyListener{ @Override public void keyTyped(KeyEvent e) { // TODO 自动生成的方法存根 } @Override public void keyPressed(KeyEvent e) { // TODO 自动生成的方法存根 Object ob = e.getSource(); if(( ob == UserLogin.txtName )&&( e.getKeyCode() == 10 )){ // System.out.println(UserLogin.txtName.getText()); } else if(( ob == UserLogin.txtPass )&&( e.getKeyCode() == 10 )){ // System.out.println( UserLogin.txtPass.getText() ); } } @Override public void keyReleased(KeyEvent e) { // TODO 自动生成的方法存根 } } class FocusHandler implements FocusListener{ @Override public void focusGained(FocusEvent e) { // TODO 自动生成的方法存根 } @Override public void focusLost(FocusEvent e) { // TODO 自动生成的方法存根 Object ob = e.getSource(); if(( ob == UserLogin.txtName ) ){ // System.out.println(UserLogin.txtName.getText()); } else if(( ob == UserLogin.txtPass ) ){ // System.out.println( UserLogin.txtPass.getText() ); } } }
滚动条窗体页面 code: import java.awt.*; import java.awt.event.AdjustmentEvent; import java.awt.event.AdjustmentListener; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JOptionPane; public class ScrollbarTest implements AdjustmentListener,ActionListener { Frame app = new Frame("滚动条"); // 三个标签数组 Label lblColor[] = {new Label("Red:"),new Label("Green:"),new Label("Blue:")}; // 三个滚动条 Scrollbar scbColor[] = { new Scrollbar(Scrollbar.HORIZONTAL,0,20,0,255), new Scrollbar(Scrollbar.HORIZONTAL,0,20,0,255), new Scrollbar(Scrollbar.HORIZONTAL,0,20,0,255),}; // Button 按钮 Button bt1 = new Button("提交"); Button bt2 = new Button("退出"); public ScrollbarTest(){ sbinit(); } void sbinit(){ app.setSize(260,300); app.setLayout(null); // 设置滚动条和标签的大小 for(int k = 0;k<3;k++){ lblColor[k].setBounds(110, 60+60*k, 50, 20); scbColor[k].setBounds(30, 85+60*k, 200, 20); scbColor[k].addAdjustmentListener(this); } // 该for循环用来设置标签和滚动条的背景颜色 for(int i = 0;i<3;i++){ lblColor[0].setBackground(Color.red); scbColor[0].setBackground(Color.red); lblColor[1].setBackground(Color.green); scbColor[1].setBackground(Color.green); lblColor[2].setBackground(Color.blue); scbColor[2].setBackground(Color.blue); } // 三个标签和三个滚动条添加到窗体中。 for(int k = 0;k<3;k++){ app.add(lblColor[k]); app.add(scbColor[k]); } bt1.setBounds(30, 250, 75,35); bt2.setBounds(160, 250, 75,35); bt1.setBackground(Color.orange); bt2.setBackground(Color.MAGENTA); bt1.addActionListener(this); bt2.addActionListener(this); app.setLocation(200, 100); app.setVisible(true); app.setResizable(false); app.setBackground(Color.gray); app.add(bt1); app.add(bt2); } public static void main(String[] args){ ScrollbarTest sbt = new ScrollbarTest(); sbt.sbinit(); } @Override public void adjustmentValueChanged(AdjustmentEvent e) { // TODO 自动生成的方法存根 Object ob = e.getSource(); if(ob == scbColor[0]){ System.out.println(scbColor[0].getValue()+" "); } else if(ob == scbColor[1]){ System.out.println(scbColor[1].getValue()+" "); } else if(ob == scbColor[2]){ System.out.println(scbColor[2].getValue()+" "); } } // ActionEvent 事件 public void actionPerformed(ActionEvent e){ Object ob = e.getSource(); // 当点击退出按钮时,窗体就回退出。 if(ob == bt2){ System.exit(0); } else if(ob == bt1){ Object str = "选择你喜爱的滚动条?"; JOptionPane.showInputDialog(str); } } }注意,一般通过Button来实现第二个窗体或者第三个或者更多窗体。一般调用上级窗体的构造函数方法来实现