java,swing,awt,图形用户界面:怎么读取一个本地文本文件并将该文件内容在图形界面的文本区显示
需要用到的知识点:
掌握IO知识,可以做到:
搜索文件,读取文本内容,写入文本内容
掌握swing/awt的事件处理机制,可以实现:
点击某个按钮, 会触发相应的事件处理
效果图
参考代码 : 注意填写3个方法
import java.awt.*;import java.awt.event.*;import javax.swing.*;//该窗口继承自JFrame. 实现了ActionListener接口public class DemoFrame extends JFrame implements ActionListener {JTextArea jta;//文本域JButton jbRead, jbWrite;//按钮public DemoFrame() {jta = new JTextArea();add(jta);jbRead = new JButton("搜索文件并显示内容");jbRead.addActionListener(this);jbWrite = new JButton("修改内容并保存");jbWrite.addActionListener(this);JPanel jp = new JPanel();jp.add(jbRead);jp.add(jbWrite);add(jp, BorderLayout.SOUTH);setTitle("窗口");// 窗口标题setSize(360, 285);// 窗口大小setLocationRelativeTo(null);// 窗口居中setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 通常添加这行代码,点击窗口右下角的关闭时会结束程序setVisible(true);}// main方法public static void main(String[] args) {new DemoFrame();}@Overridepublic void actionPerformed(ActionEvent e) {JButton jb = (JButton) e.getSource();if (jb == jbRead) {getFilePath();// 搜索文件jta.setText(readFile(filePath));// 读取文件并显示} else if (jb == jbWrite) {if (filePath != null) {String str = jta.getText();writeFile(str, filePath);//写入文件}else {JOptionPane.showMessageDialog(null, "请先点击按钮");}}}// 文件路径private String filePath;//需要完成方法1 搜索得到文件路径private void getFilePath() {filePath = "d://info.txt";}//需要完成方法2 读取文件得到文本内容private String readFile(String fp) {return "这是读取得到的文本内容";}// 需要完成方法3 把内容写入文件private void writeFile(String str, String fp) {JOptionPane.showMessageDialog(null, "保存成功");}}
图形界面就不说了,这个你可以点击按钮然后用IO流去读取文本的内容,读取完了在输出到另一个窗口
按照你的要求编写的Java图形界面读取文本文件的程序如下(注意注释中的提醒)
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class B extends JFrame implements ActionListener{
String filename="D:\mp\emp.txt";//这里写你准备好的文本文件的全路径名
JTextArea jta=new JTextArea(5,3);
JScrollPane jsp=new JScrollPane(jta);
JButton jb=new JButton("读取文件");
JPanel jp=new JPanel();
B(){
setTitle("读取文本文件");
jb.addActionListener(this);
jp.add(jb);
add(jsp,BorderLayout.CENTER);
add(jp,BorderLayout.SOUTH);
setSize(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new B();
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jb){
readFile(filename);
}
}
public void readFile(String filename2){
FileReader fr = null;
BufferedReader br = null;
try {
fr= new FileReader(filename2);
br=new BufferedReader(fr);
String str;
while((str=br.readLine())!=null){
jta.append(str+"
");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
try {
br.close();
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
运行结果
文本文件 temp.txt的内容
天下一家
拥抱明天
永远的朋友
大家做J2EE开发,需要学SWING吗
Java中的Swing及AWT又称GUI编程。关于学习Java要不要学Swing及AWT,这个完全取决于个人的开发及发展方向。如果从事web方向的开发,则可以不用学习Swing及AWT。如果从事的是GUI编程或C\/S模式的编程,则要学习Swing及AWT。简单普及下啥是AWT和Swing:AWT(Abstract Window Toolkit),中文译为抽象窗口工具包,...
java中SWT和swing是什么关系?在界面中分别扮演着什么样的角色?_百度知 ...
AWT都是重量级组件,通过调用平台对等体实现GUI,所以有个最大公约数问题。界面也很难看。Swing绝大部分是轻量级组件,用Java自己绘制GUI,可以方便的使用各种L&F,但是比较消耗资源。SWT和JFace是开发Eclipse使用的GUI技术,只有平台没有的才自己绘制,所以界面和平台一样,速度也很快。使用平台资源需要dispose...
java swing组件的优点有哪些?
Java Swing组件的特点:1、Swing的实现是一个小型GUI框架,该框架无基本平台依赖性,而在AWT实现中却有依赖性。2、javax.swing.JComponent类是所有Swing组件的基类。3、Swing模型的目标是要遵循模型-视图-控制器体系结构。模型封装了数据和状态的底层表示。4、javax.swing.plaf包提供了一个接口和许多抽象...
java的awt,swing如何下载
1、Java的awt和swing可以从Java官网上下载不同版本的JavaJDK(JavaDevelopmentKit)。2、在开源项目网站上找到这些工具的源代码,且在EclipseIDE中使用日志调试查看这些源代码。
java Swing和java Web是什么意思?
swing是java的中用来制作图形界面 web 是网页的
...java语言的各种界面编程组件:swing、awt、swt、jsf、jfac_百度知 ...
JFace是SWT的增强包,它是对SWT的进一步封装,使得SWT界面开发的模块划分更加清晰,代码也更加维护。综上,在渲染的灵活性上面,swing是最优的,因为它的渲染可在java程序中实现(MVC),而AWT和SWT则因为本机对等体的缘故不是那么灵活;在内存占用上面,AWT和SWT比swing要少得多,而且也响应也要快一些...
java awt和swing有什么区别?
跟本地系统的相关性。。JDK写程序 所有功能都是靠虚拟机去操作本地操作系统 比如window下。。就是JDK用windows API实现你功能 而awt包中很多组件是组件自身去调用本地操作系统代码 swing包中的组件 采用的是调用本地虚拟机方法,由虚拟机再调用本地操作系统代码。。意思就是中间多了一层,这样就加强了...
java swing这东西重不重要?
第一:java swing是用来编写客户端程序的,现在基本没人用java来编写客户端了,或者说国内基本没有用java来编写client的。基本都是用c++或者c#。因为前者易编写易用样式也好,后者因为是微软的我就不过多解释了。鼎鼎大名的eclipse就是用java语言编写的。第二:java基本用来写b\/s结构的网站程序。比如一些...
java:还要不要学swing和awt啊
Swing和AWT 是java开发GUI常用的技术 . 但是由于外观不太美观, 组件数量偏少, 并且运行需要JRE环境(动不动就上百M的JRE包...), 所以没有流行起来.但是 ,建议学还是需要简单的学习和了解的.组件(JTable,JList等)很多都是MVC的经典示范. 学习也可以了解mvc架构的 工作时,也有可能遇见需要维护N年前...
java swing线程安全吗
当Java程序启动的时候,一个线程立刻执行,这个线程叫做main thread,执行main方法。主线程的特征:他是产生其他子线程的线程 主线程中执行程序的控制 通常主线程最后完成执行,因为他执行各种关闭动作 永远不要再主线程中操纵界面(不应该在main thread中创建UI元素,或者更改UI元素的属性)错误示例 Swing的...
乐正朋硫酸: AWT 是Abstract Window ToolKit (抽象窗口工具包)的缩写,这个工 具包提供了一套与本地图形界面进行交互的接口.AWT 中的图形函数与操作系统所提供的图形函数之间有着一一对应的关系,把它称为peers. 也就是说,当利用 AWT 来构...
琼海市18783082107: 什么是AWT和swing - ?
乐正朋硫酸: AWT 是抽象窗口组件工具包,是 java 最早的用于编写图形节目应用程序的开发包.Swing 是为了解决 AWT 存在的问题而新开发的包,它以 AWT 为基础的.
琼海市18783082107: 请问AWT和swing绘图方式的区别 - ?
乐正朋硫酸: 在大部分情况中,决定都是在 Swing 与结合了 JFace 的 SWT 之间进行的.通常来说,每个工具包都非常完整且功能强大,足以构建功能完善的 GUI,但是 Swing 通常要比单独使用 SWT(不使用 JFace 时)更好.Swing 具有内嵌于 Java 技术的优点,是完全可移植的,无可争议地是一种更好的架构.Swing 也具有高级图形应用程序所需要的优点.SWT 具有可以作为本地应用程序实现的优点,这可以提高性能,并利用基于 SWT 的 GUI 来实现本地兼容性. 如果您只为一种平台来开发系统,那么 SWT 就具有主机兼容性方面的优点,包括与主机特性的集成,例如在 Windows 上对 ActiveX 控件的使用.
琼海市18783082107: 如何在AWT,Swing和SWT中选择 - ?
乐正朋硫酸: AWT,SWING, SWT 都是java重要的GUI图形界面技术 他们之间的选择, 是要依据场景而定的:1. AWT成熟稳定 , 适合小内存的情况.2. SWING跨平台,组件较为丰富3. SWT在windows平台下性能好,稳定,组件丰富. 在其他平台下,处理不好就容易崩溃 当然了这些都算是比较早的图形界面技术了, 都没有更新了 ,目前java推荐的图形界面技术是JavaFX ,官方的目的是用JavaFX 成为主流~ javaFX功能强大,外观漂亮, 代码量少, 比Swing略微简单, 上手更快.
琼海市18783082107: java awt;java applet;java swing分别是什么?他们之间有什么联系和区别? - ?
乐正朋硫酸: 楼上说的很详细了,我再说几点吧.awt、swing都是用来开发GUI的.关于那个 applet(java小程序,主要用来开发显示在网页上的程序) 在java刚出生的时候,主要就是用来开发applet程序,主要用到 awt.swing是在awt的基础上,进行了全新的理念设计,开发出来的GUI工具包.现实中的情况是:1. applet程序现在已经很少有人在使用了.2. swing主要用来开发java桌面程序,在开发java的桌面程序的时候也离不开awt,例如awt里面的事件方面的类会经常用到.你可以不学applet,但你不能不学awt和swing
琼海市18783082107: java图形界面初学者提问 swing atm(大概是这个名字) Javafx的区别是什么 - ?
乐正朋硫酸: AWT ,SWING , JavaFX 都是java推出的图形界面框架.简单的描述三者的区别如下: 1. awt 组件较少, 运行时占用系统资源较少, 适合嵌入式平台等2. swing组件略多,运行时占用系统资源较多, 有较多的技术参考资料, 适合PC等3. javaFX 组件丰富. 支持3D ,动画, 特效, 多媒体, 也支持html5 ,方便的属性绑定,UI层和事件层分离 ,是更加现代化的图形界面框架.但是资料教材有点少 所以写PC上的java图形界面一般推荐使用swing或JavaFX
琼海市18783082107: 求一个java图形界面编程:使用AWT(或Swing)编制系统功能界面,根据图形编程 - ?
乐正朋硫酸: package net.pzw;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;pub...
琼海市18783082107: 谁知道swing与AWT最大的区别是什么? - ?
乐正朋硫酸: SWING与AWT小应用程序的区别 也许你以前使用过AWT进行图形用户界面(GUI)的设计,感觉如何呢?现在JAVA2提供了Swing包,向大家展示了更丰富的功能,使用它设计的界面会更友好,现在我们就来看一下. 以前你设计小应用程序会...
琼海市18783082107: java 的swing 与awt的关系 - ?
乐正朋硫酸: 首先需要说一点swing是AWT的一个类似升级版本. 在SWING里有很多方法都是继承awt里的. 之所以有SWING是应为JAVA原来的设想是用操作系统内的框架来搭设显示环境,但后来发展之后发现不能很好的跨平台.(跨平台后显示出现混乱的错误)所以在1.2的版本中推出了SWING.同时在AWT中一些不错的功能还被SWING所使用!
琼海市18783082107: Java语言 - ?
乐正朋硫酸: swing是在AWT基础上演变 它在图像,文字处理等方面更强,比如要实现字体的更改(记事本的字体功能)在AWT中的TextAre实现比较难 而在SWING中JTextArea容易实现 .两者之间没有太大的区别 你学会使用AWT就基本上会使用swing