在Java中什么是swing?简单的说就是Java中包装好的并且规定好的用来做窗体UI的一套API;以下简单的介绍一下常用的swing组件。
1:JButton:代表Swing按钮,可以带一些图片或者文字;
2:JCheckBox:代表Swing组件的复选框组件;
3:JComBox:代表下拉列表框;可以在下拉显示区域显示多个选项;
4:JFrame:代表Swing框架类;
5:JDialog:代表Swing版本对话框;
6:JLabel:代表Swing中的标签组件;
7:JRadioButton:代表swing中的单选按钮;
8:JList:代表能够在用户界面中显示一系列条目组件;
9:JTextField:代表文本框;
10:JPaswordField:代表密码框;
11:JTextarea:代表swing中的文本区域;
12;JOptionPane:代表swring中的一些对话框;
常用的事件监听其实很好理解首先要明白什么是事件?什么是事件监听器?什么是事件源?
事件:对于组件的任何一个操作:点击按钮,选中菜单项 鼠标移动,鼠标按下,键盘输入...
事件监听器:用来监听在某个组件上是否发生了对应的事件
事件源:发生事件的组件对象
理清了这三个因素以后,就明白,在哪里(事件源)发生事件则需要监听哪里,下面看一下最简单的山寨版记事本文件
以下是实现部分功能的代码
package wenjiancaozuo; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.FileInputStream; import java.io.FileOutputStream; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.ScrollPaneConstants; /** * 界面类 * * @author wangwei * */ public class NotePadUI { public static void main(String args[]) { // 创建界面 JFrame jf = new JFrame(); // 设置标题 jf.setTitle("java记事本"); // 设置初始大小 jf.setSize(500,500 ); // 设置点击关闭按钮的时候退出程序 jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 创建多行文本框 JTextArea area = new JTextArea(); //设置背景颜色 area.setBackground(Color.PINK); // 添加菜单栏 JMenuBar bar = new JMenuBar(); // 创建事件监听器对象 NotePadListener lis = new NotePadListener(area); String[] menus = { "文件(F)", "编辑(E)", "格式(O)", "查看(V)", "帮助(H)" }; String[][] items = { { "新建(N)", "打开(O)", "保存(S)", "另存为(A)", "-", "页面设置(U)","打印(P)", "-", "退出(X)" }, { "撤销(U)", "-", "剪切(T)", "复制(C)","查找(F)","替换(L)","删除(X)" }, {"自动换行","字体"}, {"状态栏"}, {"查看帮助(H)","关于记事本(A)"} }; // 每个菜单项的唯一标识 String[][] commands = { { "newFile", "open", "save", "saveAs", "-", "pageSet", "print", "-", "exit" }, { "withDraw", "-", "cut", "copy" ,"find","replace","delete"}, {"AUTO","char"}, {"Status"}, {"help","with"} }; // 循环创建JMenu,放在JMenuBar上 for (int i = 0; i < menus.length; i++) { JMenu menu = new JMenu(menus[i]); bar.add(menu); for (int j = 0; j < items[i].length; j++) { if (items[i][j].equals("-")) { // 就加入分隔条 menu.addSeparator(); } else { JMenuItem item = new JMenuItem(items[i][j]); // 设置菜单项的唯一标识(动作命令) item.setActionCommand(commands[i][j]); // 将菜单项加载对应的菜单上 menu.add(item); // 给菜单项绑定监听器 item.addActionListener(lis); } } } // 设置窗体的菜单 jf.setJMenuBar(bar); // 滚动面板,将多行文本框放到滚动面板面板中 JScrollPane sp = new JScrollPane(area); // 设置一直显示滚动条并且在什么时候可见设置为always sp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); sp.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); //添加在窗体上 jf.add(sp); //设置窗体可见 jf.setVisible(true); } }
package wenjiancaozuo; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.FileInputStream; import java.io.FileOutputStream; import javax.swing.JTextArea; public class NotePadListener implements ActionListener{ private JTextArea area; //通过构造方法传值过来 public NotePadListener(JTextArea area){ this.area=area; } //通过事件触发自动调用 public void actionPerformed(ActionEvent e) { //获得被选中的菜单项目的动作命令 String command =e.getActionCommand(); if(command.equals("save")){ //获得多行文本框的数据 //得到文本框内容 String str =area.getText(); String path = "F:\\aba\\d.txt"; try{ FileOutputStream fos = new FileOutputStream(path); //这里写入的数据很可以用字节数组来写入 //获得字节数组 byte[] bs = str.getBytes(); fos.write(bs); fos.flush(); fos.close(); }catch(Exception ef){ ef.printStackTrace(); } }else if(command.equals("open")){ String path1 = "F:\\aba\\d.txt"; try{ FileInputStream fis = new FileInputStream(path1); //文件比较小所以用获取流的长度来实现 int Len = fis.available(); //流中有多大字节就定义多大数组 byte[] bs = new byte[Len]; //将流中字节读入数组 fis.read(bs); //将字节数转换成字符串 String mg = new String(bs); area.setText(mg); }catch(Exception ef){ ef.printStackTrace(); } } } }
以上是山寨版的简单的记事本,也只是实现了部分功能,主要通过小程序来说明以下swing组件的部分简单的用法和回顾以下IO流
相关推荐
【标题】:“山寨记事本(含源文件)”是一个基于VB.NET开发的简易文本编辑器,它提供了基本的文字编辑功能,类似于Windows操作系统内置的“记事本”程序。这个项目的特点在于它附带了完整的源代码,为学习和研究VB...
2. **IO流**:记事本应用的核心是读写文件,这需要用到Java的IO流技术,如`FileReader`、`FileWriter`、`BufferedReader`、`BufferedWriter`等,用于实现文件的打开、读取、写入和关闭。 3. **Swing库**:Java的...
【标题】:“山寨机语音文件”这一主题主要涉及到的是手机语音技术在非正规或低成本手机(通常被称为“山寨机”)中的应用。这类设备通常在中国的一些小型制造商中生产,它们试图模仿主流品牌的功能,但价格更为亲民...
notepad.jar 手机软件记事本、备忘录java版本 ,简单实用,山寨机也可用
【TTS技术详解】 TTS,全称Text To Speech,即文本转语音技术。这是一种将文字信息转化为可听见的语音输出的...对于使用山寨NOKIA N98或其他手机的用户来说,正确地安装和设置TTS文件,可以提升设备的实用性和便利性。
总结一下,这些“山寨机用的词典文件”是为低成本、非主流智能手机设计的,包含有英文到中文和中文到英文的词典数据。它们使用了PDB格式存储数据,并有对应的索引文件以优化搜索性能。用户需要一个兼容的词典应用来...
这个项目是针对J2SE平台设计的,主要运用了Java的面向对象编程、网络编程、输入输出流(I/O流)、数据结构和多线程技术。 在需求分析阶段,设计者曾昊明确了系统必须具备的基本功能,如用户能够进行身份的注册与登录...
然而,通过一些特定的文件和方法,我们可以使这些应用在山寨手机上运行。 标题提到的"山寨手机安装飞信,QQ必备文件"意味着我们需要关注两个核心应用:飞信和QQ2008。飞信是中国移动推出的一款即时通讯应用,而...
这个压缩包包含了一系列关键文件,用于实现语音合成功能,使得手机能够将文字信息转化为可听的语音输出,尤其适用于那些功能较为简单或者不支持原生TTS系统的山寨手机。 首先,我们要了解什么是TTS技术。TTS是一种...
思凯。mrp文件管理工具,用于修改MRP游戏、软件显示英文名。
### 山寨APP的危害以及防止山寨APP的方法 #### 山寨APP的危害 ##### 对用户的危害 1. **窃取账号**:山寨APP通过各种手段获取用户的登录信息,进而非法访问用户的账户,可能导致资金被盗或其他隐私泄露。 2. **...
4. **UI设计与实现**:山寨版QQ的UI设计模仿了原版,可以让我们了解如何使用Android的XML布局文件或者iOS的Storyboard来创建界面,以及如何绑定事件处理函数。 5. **安全机制**:尽管是山寨版,但QQ的账号安全机制...
总的来说,"山寨"分析仪事件提醒我们,无论是制造商还是消费者,都必须高度重视产品的质量和真伪验证,同时,政策制定者和执行者也需要强化法规,打击制假售假行为,以确保科技产品的可靠性和公众的安全。
通过分析这些源代码,学习者可以了解如何在Java中实现GUI的设计,包括窗口布局、按钮、文本框等元素的创建,以及事件处理机制,如点击按钮后的响应。此外,还可能涉及线程管理,因为即时通讯应用通常需要在后台持续...
事件监听器(如`ActionListener`)和事件处理器(如`actionPerformed`方法)用于处理这些交互。 7. **数据存储**:为了持久化用户数据,项目可能使用了数据库。Java提供JDBC(Java Database Connectivity)API来与...
山寨 手机 uc mrp安装文件 山寨 手机 uc mrp安装文件
MTK平台软件,山寨机哦
3. **事件处理**:Java事件监听机制是GUI编程的关键,用户操作如点击按钮、输入文字都会触发相应的事件处理器。 4. **多线程**:为了实现异步处理,如接收和发送消息,源码中可能会有多个线程在后台运行,如...
在"基于Java反射机制的山寨版WEB2"项目中,开发者利用这一特性创建了一个简易的Web应用程序,实现了文件上传下载、处理中文乱码、NEW和SPRING模式的支持以及JSON数据交互等功能。 1. **文件上传下载与中文乱码处理*...
7. **事件驱动编程**:Java的事件模型(Event Model)用于处理用户的交互事件,如点击按钮、输入文字等,这通常与监听器(Listener)和回调函数(Callback)相关联。 8. **错误处理与异常处理**:为了保证程序的...