多窗体
多窗体
多窗体,这是小编结合前面发的几篇而写成的。通过登录页面登录后,进入到另一个页面。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来实现第二个窗体或者第三个或者更多窗体。一般调用上级窗体的构造函数方法来实现
编程是一门艺术,要爱就要深爱。