我的java学习之界面设置01
2016-03-24 16:57
393 查看
// TestMain 聊天界面及事件处理 import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.io.*; public class TestMain{ public static void main(String [] args){ JFrame frame = new MainFrame(); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } class MainFrame extends JFrame{ public MainFrame() { this.setTitle("Main Frame"); this.setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); setFrame(); readChatMessage(); addListener(); } //设置界面布局 public void setFrame(){ panInput.setLayout(new GridLayout(1,2)); panInput.add(comBox); panInput.add(btnSend); panUser.setLayout(new GridLayout(2,1)); panUser.add(txtMess); panUser.add(panInput); this.setLayout(new BorderLayout()); this.add(panUser, BorderLayout.NORTH); this.add(scrollPane, BorderLayout.CENTER); } //添加事件监听 public void addListener() { txtMess.addKeyListener( new KeyAdapter() { public void keyPressed(KeyEvent e) { if(e.getKeyCode() == e.VK_ENTER) { txtContent.append(txtMess.getText() + "\n"); saveChatMessage(); txtMess.setText(""); } } } ); btnSend.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { txtContent.append(txtMess.getText() + "\n"); saveChatMessage(); txtMess.setText(""); } } ); } //读取聊天记录 public void readChatMessage() { try{ File inFile = new File("F://mydata//chat03.txt"); FileReader fr = new FileReader(inFile); BufferedReader br = new BufferedReader(fr); while(br.ready()) { txtContent.append(br.readLine() + "\n"); } } catch (IOException e){e.printStackTrace();} } //保存聊天记录 public void saveChatMessage() { try{ File outFile = new File("F://mydata//chat03.txt"); FileWriter fw = new FileWriter(outFile,true); //如果不加true则直接替换 PrintWriter pw = new PrintWriter(fw); pw.println(txtMess.getText()+ "\n"); pw.flush();//如果不写flush 则无法将缓冲区的数据写入 } catch (IOException e){e.printStackTrace();} } private JTextField txtMess = new JTextField(); private JComboBox comBox = new JComboBox(); private JButton btnSend = new JButton("发送"); private JTextArea txtContent = new JTextArea(); private JScrollPane scrollPane = new JScrollPane(txtContent); private JPanel panInput = new JPanel(); private JPanel panUser = new JPanel(); private static final int DEFAULT_WIDTH = 400; private static final int DEFAULT_HEIGHT = 250; }
View Code
这两个一个是登陆界面一个是消息界面
java中的界面设置
窗体 Frame 面板Panel 各组件 xx 文本框 标签 菜单栏 按钮...
窗体上加载面板 面板上 增添组件 绘图等 (此处应有大图, 图呢...)
界面部分
JFrame
frame = new XXFrame(); //创建一个实现了JFrame类的对象
设置窗体可见性 setVisible(true) 设置窗体默认可关闭选项 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
然后就是把具体的窗体以及组件 进行设置
添加事件监听
熟悉java的几个组件 如 文本框 JTextField 文本标签
按钮
接下来就是布局了 (布局管理器 LayoutManger)
常见的几个布局
GridLayout() GridLayout() 表格布局
FlowLayout() Flow 流式布局
就是按照顺序水平放置各组件 (默认居中哦)
BorerLayout 边框布局 东西南北中
用法: xx.setLayout(new
BorderLayout()); xx.add(xx,
BorderLayout.XX);
简言之 设置布局管理器, 然后按你设定布局管理器的方式把组件放上去就成
读取本地记录方面
IO流读取记录
文件记录是得在硬盘上,程序搁内存运行,要获取到文件记录,必须得作如下操作
1. 找到它
(定位数据源) File inFile = new File(String path);
2. 建立通道 (得有联系呀) FileInputStream / FileReader xx = new FileInputStream/FileReader(inFile);
3. 进行操作呗 (读写数据啊) xx.read(xx); while(br.ready()) ...
File inFile =
new File(“F:\\mydata\\chat03.txt”); // 搁这里头定的是啥位呢 硬盘中指定的位置
File(String path)
\ Java中表示啥,反斜杠?转义字符
所以呢 文件分隔符用\\表示 或用File. separator
的方式
FileReader 直接用字符流读取文件信息
然后呢用BufferedReader 包装一下,就搁他默认的用。。。
相关文章推荐
- Error while creating directories: Invalid argument
- 用Java打暴雪星际(3)——探究示例机器人代码
- spring装配集合
- 有关jdbc驱动的问题,java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
- Spring @Value注解使用${}进行注入
- HDU2085JAVA
- java的Future使用方法
- JSON字符串与java对象的相互转换
- MyEclipse10 配置struts2.xml文件自动提示
- java Runtime 解析
- javassist AOP
- Ajax实战项目1 验证用户的唯一性 环境(Ajax+struts2)
- Java中的序列化Serialable高级详解
- 关于java.lang.IllegalArgumentException: View not attached to window manager 错误的分析
- spring学习笔记(6)AOP前夕[1]jdk动态代理实例解析
- java.不使用for,while循环打印99乘法表
- Map接口的实现类--Hashtable和HashMap及TreeMap的区别--------(java复习)
- spring mvc 基于注解的使用总结
- springMVC 整合ueditor
- java数据库连接池之bonecp