[javaSE] GUI(练习-列出指定目录内容)
2023-02-18 15:47:13 时间
获取Frame对象
获取TextField对象
获取TextArea对象
获取Button对象
调用Frame对象的add()方法,添加进去
调用TextField对象的getText()方法,可以获取文本框内的数据
调用TextArea对象的setText()方法,设置文本数据
列目录
获取到文本框中的路径,包装成File对象
调用File对象的list()方法,可以得到String[]文件名数组
import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.TextArea; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; public class FrameDemo { private Frame frame; private TextField tf; private TextArea ta; private Button button; public FrameDemo() { init(); } /** * 初始化 */ public void init() { frame = new Frame("测试窗体"); frame.setBounds(300, 200, 300, 400); frame.setLayout(new FlowLayout()); tf = new TextField(20); button = new Button("转到"); ta = new TextArea(30, 30); frame.add(button); frame.add(tf); frame.add(ta); frame.setVisible(true); addEventAction(); } /** * 添加事件 */ public void addEventAction() { // 退出 frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); // action事件 button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String dirName = tf.getText(); File file = new File(dirName); if (!file.isDirectory() || !file.exists()) { ta.setText("目录不存在"); return; } String[] files = file.list(); StringBuilder sb = new StringBuilder(); for (String name : files) { sb.append(name); sb.append("\r\n"); } ta.setText(sb.toString()); } }); } /** * @param args */ public static void main(String[] args) { new FrameDemo(); } }
相关文章
- 从源码角度学习JVM类加载器及自定义类加载器
- 彻底搞懂双亲委派机制 顺便学点源码技巧
- JVM 彻底搞懂JVM内存区域及直接内存
- JVM 一张图带你了解内存分配过程 搞懂逃逸分析|标量替换|指针碰撞|空闲列表|TLAB
- JVM 什么样的对象会直接进入老年代?
- JVM 彻底搞懂什么是老年代空间分配担保机制
- JVM 彻底搞懂几种常见的垃圾回收机制|标记清除|标记复制|标记整理
- JVM 别和我说你还不知道这几种垃圾回收器?Serial |Parallel|ParNew|CMS|G1|ZGC
- 你知道JVM 是如何解决并发标记过程中:多标和漏标的情况么?
- 7分钟掌握 ByteBuf 和 ByteBuffer 工作原理及区别
- 如何使用 SEGGER Embedded Studio创建库文件?
- stm32CubeIDE中CMSIS_V1和CMSIS_V2选项的区别
- 性能之巅-优化你的程序
- Cortex-M中特别实用的DWT计数器
- 一款Win下超简单的网络嗅探工具MiniSniffer
- STM32高级开发——gcc-arm-none-eabi
- STM32高级开发——使用VS Code搭建STM32开发环境
- 快应用VS原生APP,优势在哪里?
- STM32中RTC简介以及使用方法
- STM32高级开发——链接器与启动文件