当前位置: 代码迷 >> Java相关 >> 图形界面问题
  详细解决方案

图形界面问题

热度:406   发布时间:2006-05-24 21:28:00.0
图形界面问题

import java.awt.*;
import java.awt.event.*;
//主界面类
class jiemian extends Frame
{

static Font fnt=new Font("Serief",Font.BOLD,18);

//菜单工具条
MenuBar bar=new MenuBar();
//菜单
Menu mu1=new Menu("开户");
Menu mu2=new Menu("查询");
Menu mu3=new Menu("轧帐");
Menu mu4=new Menu("存取款");
Menu mu5=new Menu("销户");
Menu mu6=new Menu("帮助");
Menu mu7=new Menu("退出");
//选择菜单条目
CheckboxMenuItem ft1=new CheckboxMenuItem("查询余额");
CheckboxMenuItem ft2=new CheckboxMenuItem("存款");
CheckboxMenuItem ft3=new CheckboxMenuItem("取款");
CheckboxMenuItem sz1=new CheckboxMenuItem("关于");
//构造函数
public jiemian()
{
setLayout(new FlowLayout());
setBackground(Color.lightGray);
setLocation(280,200);
mu2.add(ft1);
mu4.add(ft2);
mu4.add(ft3);
mu6.add(sz1);
bar.add(mu1);
bar.add(mu2);
bar.add(mu3);
bar.add(mu4);
bar.add(mu5);
bar.add(mu6);
bar.add(mu7);

bar.setFont(fnt);
setMenuBar(bar);
sz1.setState(true);
setSize(410,400);

setVisible(true);
}

}


//开户类
class kaihu{
static Frame frm=new Frame();
static Label lb1=new Label("户名:");
static Label lb2=new Label("开户金额:");
static Label lb3=new Label("储种:");
static TextField tfd1=new TextField(12);
static TextField tfd2=new TextField(12);
static TextField tfd3=new TextField(12);
static Button bn=new Button("确定");
static Font fnt=new Font("Serief",Font.BOLD,22);
public kaihu(){
frm.setLayout(new FlowLayout(FlowLayout.CENTER,20,20));
frm.setSize(360,280);
frm.setLocation(300,200);
frm.setBackground(Color.lightGray);
frm.add(lb1);
frm.add(tfd1);
frm.add(lb2);
frm.add(tfd2);
frm.add(lb3);
frm.add(tfd3);
frm.add(bn);
lb1.setFont(fnt);
lb2.setFont(fnt);
lb3.setFont(fnt);
bn.setFont(fnt);
tfd1.setFont(fnt);
tfd2.setFont(fnt);
tfd3.setFont(fnt);


frm.setVisible(true);
}



}
//登陆主类
public class land extends Frame{
static Frame frm=new Frame();
static Label lb1=new Label("操作员代号:",Label.RIGHT);
static TextField tf1=new TextField(12);
static Label lb2=new Label("操作员姓名:",Label.RIGHT);
static TextField tf2=new TextField(12);
static Button bn=new Button("登陆");
static Font fnt1=new Font("Serief",Font.BOLD,26);
static Font fnt2=new Font("Serief",Font.BOLD,40);
static Label lb3=new Label("欢迎光临我们的银行系统");
static Panel pl=new Panel();

//构造方法
public land(){
frm.setLayout(new FlowLayout(FlowLayout.CENTER,20,40));
frm.setSize(480,400);
frm.setLocation(300,200);
frm.setBackground(Color.lightGray);
frm.add(lb3);
frm.add(lb1);
frm.add(tf1);
frm.add(lb2);
frm.add(tf2);
frm.add(bn);
tf1.setFont(fnt1);
tf2.setFont(fnt1);
lb1.setFont(fnt1);
lb2.setFont(fnt1);
lb3.setFont(fnt2);
bn.setFont(fnt1);
bn.addActionListener(new jiantingjiemian());
bn.addActionListener(new jiantingkaihu());
frm.setVisible(true);
}
//创建内部类实现ActionListener接口
public static class jiantingjiemian implements ActionListener{
public void actionPerformed(ActionEvent e){
jiemian jm=new jiemian();
}
}

//创建内部类实现ActionListener接口
public static class jiantingkaihu implements ActionListener{
public void actionPerformed(ActionEvent e){
kaihu kh=new kaihu();
}
}

public static void main(String args[]){

new land();
}
}
有两个问题搞不弄:1、怎样才能在点击“登陆”按钮时只弹出主界面.
         2、连续点击“登陆”按钮时,会不停出现主界面,怎样才只出现一次。
还有什么地方要改进的请版主指出,谢谢!

搜索更多相关的解决方案: 图形  界面  

----------------解决方案--------------------------------------------------------

你面问题不小,首先你的界面开了后是关不了的,这很郁闷。所以你得先给他加个窗口事件。
其次你要明确每个按钮的职能,我很少看到给以个按钮监听两次的,你那样可以都写一个里面,完全没必要分开。
你把你的具体功能,具体按钮要得到什么事件说出来,我再帮你改,我现在又不能乱改,那样会不合你的意思的。
还有一点,最好swing,用起来更方便。


----------------解决方案--------------------------------------------------------

在第一次点击后去掉事件监听 不就只弹出一次了


----------------解决方案--------------------------------------------------------
我把程序要求发到你邮箱了,谢谢你!
----------------解决方案--------------------------------------------------------

我给你发邮件了,自己看看,还有建议那个主界面里面能够用 Jtable显示总帐那样更好。好好干,只要下功夫还是很简单的,呵呵


----------------解决方案--------------------------------------------------------

谢谢你!我会继续努力的.


----------------解决方案--------------------------------------------------------