您的位置:首页 > 编程语言 > Java开发

我的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 包装一下,就搁他默认的用。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: