一个对话框类的Applet程序

//一个对话框类的Applet程序dialog.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class PanelTest extends JApplet//面板
{
JPanel panelObj;
public PanelTest()
{
panelObj=new JPanel();
getContentPane().add(panelObj);
}
}

class ButtonTest extends PanelTest//组件
{
JTextField textObj;
JButton input;
JButton clean;
public ButtonTest()
{
textObj=new JTextField(20);
input=new JButton("录入(W)";);
clean=new JButton("清除(E)";);
input.setEnabled(true);//初始程序时录入按钮是活动状态的
clean.setEnabled(false);//初始程序时清除按钮是灰色的
panelObj.add(textObj);
panelObj.add(input);
panelObj.add(clean);
}
}

class FlowLayoutTest extends ButtonTest//布局
{
FlowLayout layoutObj;
public FlowLayoutTest()
{
layoutObj=new FlowLayout(FlowLayout.CENTER,10,10);
panelObj.setLayout(layoutObj);
}
}

//好大一个类啊
class EventTest extends FlowLayoutTest//事件
{
ButtonEvent bEObj;//按钮事件对象
public EventTest()
{
bEObj=new ButtonEvent();
input.addActionListener(bEObj);//为录入按钮增加事件监听器
clean.addActionListener(bEObj);//为清除按钮增加事件监听器
}

class ButtonEvent implements ActionListener //按钮的事件处理代码
{
int i=0;//列表框文字前面的标号,这个变量用的巧
String strList[]={"","","","","","","","","","","",""};
DialogEvent dialogObj;//DialogEvent是一个内部类,用来处理对话框上的事件
public void actionPerformed(ActionEvent e)
{
Object obj=e.getSource();//获取当前组件对象
//录入按钮上的事件代码
if(obj==input)
{
String strObj=textObj.getText();//获取文本框内容并赋给strObj对象
if(strObj.length()==0)//如果文本框没有内容
{
getAppletContext().showStatus("警告!文本框不能为空";);
return;
}
//点录入按钮后如果文本框内容不为空则弹出一个对话框
strList=i+1+"."+textObj.getText();//显示在列表框上的文字,这里用了个技巧,注意变量I,它实现了字符串的保存
dialogObj=new DialogEvent(null,"对话框",true);/*这个对话框事件类的构造函数还带参数,参数就是从这里传进去的,
后面就可以看见原型函数了,这是本程序的精华*/
dialogObj.setSize(240,160);//设置对话框大小
dialogObj.setVisible(true);//因为对话框是一个容器类,容易也需要设置可见
}
//清除按钮上的事件代码
if(obj==clean)
{
clean.setEnabled(false);//点清除按钮后清除按钮变灰
input.setEnabled(true);//点清除按钮后录入按钮激活
textObj.setText("";);//点清除按钮后文本框内容清空
getAppletContext().showStatus("你点了清除按钮!";);//点清除按钮后状态拦的显示消息

}//actionPerfromed函数代码结束

//对话框类,注意整个对话框类都在ButtonEvent类里
class DialogTest extends JDialog
{
public DialogTest(Frame frame,String title,boolean modal)
{
super(frame,title,modal);//调用父类JDialog的构造函数,创建一个对话框
}
}

class PanelDiaTest extends DialogTest
{
JPanel panelDialog;
public PanelDiaTest(Frame frame,String title,boolean modal)
{
super(frame,title,modal);//调用父类DialogTest的构造函数
panelDialog=new JPanel();//创建一个JPanel面板
getContentPane().add(panelDialog);//将panelDialog添加到对话框上
}
}

class ButDiaTest extends PanelDiaTest //对话框上的组件
{
JList listStr;//列表框
JScrollPane scrollList;//列表滚动条
JButton modif;//修改按钮
JButton save;//保存按钮
public ButDiaTest(Frame frame,String title,boolean modal)
{
super(frame,title,modal);
listStr=new JList(strList);
listStr.setEnabled(false);
listStr.setFixedCellWidth(200);//宽度
listStr.setVisibleRowCount(3);//可见列表数
scrollList=new JScrollPane(listStr,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
modif=new JButton("修改(E)";);
save=new JButton("保存(S)";);
panelDialog.add(scrollList);
panelDialog.add(modif);
panelDialog.add(save);

}
//对话框上组件的布局
class DialogLayout extends ButDiaTest
{
FlowLayout layoutObj1;
public DialogLayout(Frame frame,String title,boolean modal)
{
super(frame,title,modal);
layoutObj1=new FlowLayout(FlowLayout.CENTER,10,10);
panelObj.setLayout(layoutObj1);
}
}

//对话框的上组件事件处理类
class DialogEvent extends DialogLayout
{
DialogButton dBObj;
public DialogEvent(Frame frame,String title,boolean modal)
{
super(frame,title,modal);
dBObj=new DialogButton();
modif.addActionListener(dBObj);
save.addActionListener(dBObj);
}
//DialogEvent的内部类,事件处理代码在这里
class DialogButton implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
Object obj=e.getSource();
//如果当前组件是修改按钮
if(obj==modif)
{
dialogObj.setVisible(false);
input.setEnabled(true);
clean.setEnabled(false);
getAppletContext().showStatus("你点了修改按钮";);
}
//如果当前组件是保存按钮
if(obj==save)
{
dialogObj.setVisible(false);//隐藏对话框
input.setEnabled(false);
clean.setEnabled(true);
getAppletContext().showStatus("你点了保存按钮,内容已保存";);
i++;//列表框文字前面的标号
}
}//actionPreformed函数结束
}//DialogButton类结束

}//DialogEvent类结束
}//ButtonEvent类结束 
}//EventTest类结束

public class dialog extends EventTest
{
public void init()
{
new dialog();
}

}

/*dialog.html
<applet code=dialog.class width=240 height=190></applet>
*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值