`
Luob.
  • 浏览: 1586321 次
  • 来自: 上海
社区版块
存档分类
最新评论

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

    博客分类:
  • Java
阅读更多
模拟window开打文件

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();
	}

}



模拟简单记事本

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

  • 大小: 31.9 KB
0
1
分享到:
评论
1 楼 yscyfy 2013-05-28  
这个也太简单了,没涉及Java Swing的核心的东西啊

相关推荐

    黑马程序员_毕向东_Java基础视频教程第22天-06-GUI(Action事件).zip

    在本视频教程“黑马程序员_毕向东_Java基础视频教程第22天-06-GUI(Action事件)”中,讲师毕向东深入讲解了Java GUI中的Action事件处理机制,这是构建用户友好界面的关键部分。 首先,我们要理解什么是GUI。GUI,...

    java基础,毕向东

    在这个名为“黑马程序员_毕向东_Java基础视频教程第22天-01-GUI(概述).zip”的压缩包中,他讲解了Java图形用户界面(GUI)的基础知识。 GUI是计算机系统中一种直观的人机交互方式,通过图形元素如按钮、文本框、...

    27天java训练*(详细到每一天训练目标和内容)

    **第22-23天:Java Swing与GUI** 这部分会介绍Java的图形用户界面库Swing,如何创建窗口、按钮、文本框等组件,以及事件监听器的使用。 **第24-26天:Java网络编程** 学习者会接触Socket编程,理解TCP和UDP协议,...

    java必备的经典面试题

    - **事件委托机制**:是GUI编程中的一个重要概念,主要用于处理用户界面事件。它通过监听器模式来实现,使得事件的产生者和事件的处理者分离,提高了代码的灵活性和可维护性。 - **垃圾回收机制**:Java自动管理内存...

    最新Java面试大全

    - **AWT (Abstract Window Toolkit)**:依赖操作系统,提供基本的图形用户界面组件。 - **Swing**:纯Java实现的轻量级组件,具有更好的跨平台性。 #### 18. Java流的理解 - **流**:表示数据传输的一个通道,用于...

    CSI-2132_GRP-22_HOTEL-PROJ:CSI 2132、2021年冬天的酒店数据库项目

    "这表明项目的核心是一个用于酒店管理的数据库应用程序,而且这个应用具有图形用户界面(GUI),该界面是用"摆动"(可能是Swing,Java的一种GUI工具包)开发的。GUI使得用户可以更直观地与系统交互,提高了用户体验...

    2021-2022计算机二级等级考试试题及答案No.2808.docx

    7. **GUI组件**:GUI(图形用户界面)程序中的基本组件是容器,它可以包含其他组件如按钮、标签和菜单等。 8. **窗体文件扩展名**:在Visual Basic等环境中,窗体文件的扩展名为.frm。 9. **Java平台**:J2ME是...

    2021-2022计算机二级等级考试试题及答案No.11455.docx

    根据提供的文档内容,我们可以从中提炼出一系列关于计算机二级等级考试的知识点,具体涵盖变量命名规则、数据库操作、面向对象编程基础、图形用户界面(GUI)组件处理、数据结构和算法、网络编程基础等主题。...

    2021-2022计算机二级等级考试试题及答案No.12404.docx

    在编程环境下,特别是图形用户界面(GUI)应用开发中,经常需要在一个控件的事件中触发另一个控件的事件。例如,在题目中提到的情景下,我们需要在`CmdPrint`的`Click`事件中触发`CmdOk`的`Click`事件。正确的做法是...

    ADM130_610_Col22.pdf

    - **SAPGUI**: 用户图形界面,是用户与SAP系统交互的主要方式之一。 - **SAP Web AS (Web Application Server)**: 提供Web服务支持,使得SAP系统可以通过互联网进行访问。 ### 相关技术和标准 #### 1. 版权声明 - ...

    2021-2022计算机二级等级考试试题及答案No.16681.docx

    - **知识点**: Windows 操作系统的图形用户界面。 - **解析**: 当菜单选项呈暗灰色时,意味着这些选项在当前环境下不可用。 - **答案**: A. 这些项在当前无效 #### 22. 控件大小的修改 - **知识点**: GUI 控件的...

Global site tag (gtag.js) - Google Analytics