java之 22天 GUI 图形界面编程(二)

本文介绍两个Java程序:一个用于模拟窗口打开文件并显示目录内容;另一个为简易记事本,支持文件打开与保存功能。通过这两个示例程序,读者可以了解如何使用Java进行基本的文件操作。
[size=medium][b]模拟window开打文件[/b][/size]


import java.awt.Button;
import java.awt.Dialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;

public class MyWinDemo {

private Frame f;
private TextField tf;
private Button btn;
private TextArea ta;
private Dialog d;
private Label lab;
private Button okbtn;

MyWinDemo(){
init();
}

private void init(){
f=new Frame("my Window");
f.setBounds(300,100,600,500);
f.setLayout(new FlowLayout());

tf=new TextField(60);

btn=new Button("转到");
ta=new TextArea(25,70);

d=new Dialog(f,"提示信息-self",true);
d.setBounds(400,200,250,150);
d.setLayout(new FlowLayout());

lab=new Label();
okbtn=new Button("确定");

d.add(lab);
d.add(okbtn);


f.add(tf);
f.add(btn);
f.add(ta);

myEvent();
f.setVisible(true);

}


private void myEvent() {

//添加 回车 时候 自动转到
tf.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if(e.getKeyCode()==KeyEvent.VK_ENTER){
showDir();
}
}
});
//确定按钮事件
okbtn.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
d.setVisible(false);
}
});

d.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
// TODO Auto-generated method stub
d.setVisible(false);
}

});

btn.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
showDir();
}

});


f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
}

});

}
private void showDir() {
String dirPath=tf.getText();

File dir=new File(dirPath);
if(dir.exists() && dir.isDirectory()){
ta.setText("");
String[] names=dir.list();
for (String name : names) {
ta.append(name+"\r\n");
//ta.setText(text);
}
}else{
String info="您输入的信息:"+dirPath+"有误,请重新输入";
lab.setText(info);
d.setVisible(true);
}

tf.setText("");
}
public static void main(String[] args) {
new MyWinDemo();
}

}



[size=medium][b]模拟简单记事本[/b][/size]


import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/**
* 实现菜单栏
*/
public class MyMenuDemo {


private Frame f;
private MenuBar mb;
private Menu m,subm;
private MenuItem closeItem,openItem,saveItem,subItem1,subItem;
private FileDialog openDialog,saveDialog;
private TextArea ta;
private File file;

MyMenuDemo(){
init();
}

private void init(){
f=new Frame("my Window");
f.setBounds(300,100,600,500);
//f.setLayout();

mb=new MenuBar();
m=new Menu("文件");

closeItem=new MenuItem("退出");
openItem=new MenuItem("打开");
saveItem=new MenuItem("保存");

subm=new Menu("新建");
subItem1=new MenuItem("Web Project");
subItem=new MenuItem("Java Project");
subm.add(subItem);
subm.add(subItem1);

m.add(subm);
m.add(openItem);
m.add(saveItem);
m.add(closeItem);
mb.add(m);

openDialog=new FileDialog(f,"我要打开",FileDialog.LOAD);
saveDialog=new FileDialog(f,"我要保存",FileDialog.SAVE);

ta=new TextArea();

f.add(ta);
f.setMenuBar(mb);
myEvent();

f.setVisible(true);

}

private void myEvent() {

saveItem.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(file==null){
saveDialog.setVisible(true);
String dirPath=saveDialog.getDirectory();
String fileName=saveDialog.getFile();
if(dirPath==null || fileName==null)
return;
file=new File(dirPath,fileName);
}
try {

BufferedWriter bufw=new BufferedWriter(new FileWriter(file));

String text=ta.getText();

bufw.write(text);
bufw.close();
} catch (IOException e2) {
throw new RuntimeException("保存失败");
}

}
});

//打开菜单
openItem.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
openDialog.setVisible(true);
String dirPath=openDialog.getDirectory();
String fileName=openDialog.getFile();
System.out.println(dirPath+"...."+fileName);
if(dirPath==null || fileName==null)
return;
ta.setText("");
file=new File(dirPath,fileName);
try {
BufferedReader bufr=new BufferedReader(new FileReader(file));
String line=null;
while((line=bufr.readLine())!=null){
ta.append(line+"\r\n");
}
bufr.close();
} catch (IOException e2) {
throw new RuntimeException("打开异常");
}

}
});


closeItem.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}
});

f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
}

});

}


public static void main(String[] args) {
// TODO Auto-generated method stub
new MyMenuDemo();
}

}


jar -cvfm 1.txt com.mymenu
[img]http://dl2.iteye.com/upload/attachment/0085/0848/63a88fa8-f934-31de-a8c7-5c17407cafcb.jpg[/img]
内容概要:本文设计了一种基于PLC的全自动洗衣机控制系统内容概要:本文设计了一种,采用三菱FX基于PLC的全自动洗衣机控制系统,采用3U-32MT型PLC作为三菱FX3U核心控制器,替代传统继-32MT电器控制方式,提升了型PLC作为系统的稳定性与自动化核心控制器,替代水平。系统具备传统继电器控制方式高/低水,实现洗衣机工作位选择、柔和过程的自动化控制/标准洗衣模式切换。系统具备高、暂停加衣、低水位选择、手动脱水及和柔和、标准两种蜂鸣提示等功能洗衣模式,支持,通过GX Works2软件编写梯形图程序,实现进洗衣过程中暂停添加水、洗涤、排水衣物,并增加了手动脱水功能和、脱水等工序蜂鸣器提示的自动循环控制功能,提升了使用的,并引入MCGS组便捷性与灵活性态软件实现人机交互界面监控。控制系统通过GX。硬件设计包括 Works2软件进行主电路、PLC接梯形图编程线与关键元,完成了启动、进水器件选型,软件、正反转洗涤部分完成I/O分配、排水、脱、逻辑流程规划水等工序的逻辑及各功能模块梯设计,并实现了大形图编程。循环与小循环的嵌; 适合人群:自动化套控制流程。此外、电气工程及相关,还利用MCGS组态软件构建专业本科学生,具备PL了人机交互C基础知识和梯界面,实现对洗衣机形图编程能力的运行状态的监控与操作。整体设计涵盖了初级工程技术人员。硬件选型、; 使用场景及目标:I/O分配、电路接线、程序逻辑设计及组①掌握PLC在态监控等多个方面家电自动化控制中的应用方法;②学习,体现了PLC在工业自动化控制中的高效全自动洗衣机控制系统的性与可靠性。;软硬件设计流程 适合人群:电气;③实践工程、自动化及相关MCGS组态软件与PLC的专业的本科生、初级通信与联调工程技术人员以及从事;④完成PLC控制系统开发毕业设计或工业的学习者;具备控制类项目开发参考一定PLC基础知识。; 阅读和梯形图建议:建议结合三菱编程能力的人员GX Works2仿真更为适宜。; 使用场景及目标:①应用于环境与MCGS组态平台进行程序高校毕业设计或调试与运行验证课程项目,帮助学生掌握PLC控制系统的设计,重点关注I/O分配逻辑、梯形图与实现方法;②为工业自动化领域互锁机制及循环控制结构的设计中类似家电控制系统的开发提供参考方案;③思路,深入理解PL通过实际案例理解C在实际工程项目PLC在电机中的应用全过程。控制、时间循环、互锁保护、手动干预等方面的应用逻辑。; 阅读建议:建议结合三菱GX Works2编程软件和MCGS组态软件同步实践,重点理解梯形图程序中各环节的时序逻辑与互锁机制,关注I/O分配与硬件接线的对应关系,并尝试在仿真环境中调试程序以加深对全自动洗衣机控制流程的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值