日志薄java实现



import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingConstants;


public class DiaryInputInterface extends JFrame{
private JTextField titleTextField;
private JTextField dateTextField;
private JTextArea textArea;
private final static String urlStr = "G:/Diary/";
private final static String todayDate = String.format("%tF" ,new Date());
static{
File file = new File(urlStr);
if(!file.exists()){
file.mkdirs();
}
}
public static void main(String [] args){
try{
DiaryInputInterface frame = new DiaryInputInterface();
frame.setVisible(true);
} catch (Exception e){
e.printStackTrace();
}
}
public DiaryInputInterface() {
super();
setTitle("日记簿");
setBounds(100,100,500,375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JLabel softLabel = new JLabel();
softLabel.setFont(new Font("", Font.BOLD, 22));
softLabel.setHorizontalAlignment(SwingConstants.CENTER);
softLabel.setText("日 薄");
getContentPane().add(softLabel, BorderLayout.NORTH);
final JPanel contentPanel = new JPanel();
contentPanel.setLayout(new BorderLayout());
getContentPane().add(contentPanel, BorderLayout.CENTER);
final JPanel infoPanel = new JPanel();
contentPanel.add(infoPanel, BorderLayout.CENTER);
final JLabel titleLabel = new JLabel();
titleLabel.setText("标题:");
infoPanel.add(titleLabel);

titleTextField = new JTextField();
titleTextField.setColumns(30);
titleTextField.setText("请输入标题");
titleTextField.addFocusListener(new FocusListener() {
@Override
public void focusLost(FocusEvent e) {
String date = titleTextField.getText().trim();
if (date.length() == 0){
titleTextField.setText("请输入标题");
}
}
@Override
public void focusGained(FocusEvent e) {
if(titleTextField.getText().equals("请输入标题")){
titleTextField.setText("");
}
String date = titleTextField.getText().trim();
if (date.length() != 0){
titleTextField.setText(titleTextField.getText());
}
}
});
infoPanel.add(titleTextField);
final JLabel dateLabel = new JLabel();
dateLabel.setText("日期:");
infoPanel.add(dateLabel);
dateTextField = new JTextField();
dateTextField.setColumns(30);
dateTextField.setText(todayDate);
dateTextField.addFocusListener(new FocusListener() {
@Override
public void focusLost(FocusEvent e) {
String date = dateTextField.getText().trim();
if(date.length() == 0){
dateTextField.setText(todayDate);
}
}
@Override
public void focusGained(FocusEvent e) {
dateTextField.setText("");
}
});
infoPanel.add(dateTextField);
textArea = new JTextArea();
textArea.setColumns(40);
textArea.setRows(60);
textArea.setText("");
infoPanel.add(textArea);
final JPanel buttonPanel = new JPanel();
final FlowLayout flowLayout = new FlowLayout();
flowLayout.setHgap(20);
buttonPanel.setLayout(flowLayout);
getContentPane().add(buttonPanel, BorderLayout.SOUTH);
final JButton saveButton = new JButton();
saveButton.setText("保存");
saveButton.addActionListener(new SaveButtonActionListener());
buttonPanel.add(saveButton);
final JButton clearButton = new JButton();
clearButton.setText("清空");
clearButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
titleTextField.setText("请输入标题");
dateTextField.setText(todayDate);
textArea.setText("");
}
});
buttonPanel.add(clearButton);
final JButton quitButton = new JButton();
quitButton.setText("退出");
quitButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
buttonPanel.add(quitButton);
final JButton seeButton = new JButton();
seeButton.setText("查看日志");
seeButton.addActionListener(new SeeButtonActionListener());
buttonPanel.add(seeButton, BorderLayout.EAST);
}
private class SeeButtonActionListener implements ActionListener{
public void actionPerformed(ActionEvent e){
DiaryList listFrame = new DiaryList();
listFrame.setVisible(true);
File text = listFrame.getText();
listFrame.dispose();
if(text != null){
String [] infos = text.getName().split("\\(|\\)");
titleTextField.setText(infos[0]);
dateTextField.setText(infos[1]); 
try {
FileReader fileReader = new FileReader(text);
char [] cbuf = new char [(int) text.length()];
fileReader.read(cbuf);
fileReader.close();
textArea.setText(String.valueOf(cbuf));
} catch (FileNotFoundException e1 ){
e1.printStackTrace();
}
catch (IOException e2){
e2.printStackTrace();
}
}
}
}
private class SaveButtonActionListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
String title = titleTextField.getText();
String date = dateTextField.getText();
String name = title + "("+ date + ") .txt";
File file = new File(urlStr + name);
if(!file.exists()){
try {
file.createNewFile();
} catch (IOException e1){
e1.printStackTrace();
}
}
try {
FileWriter fileWriter = new FileWriter(file);
fileWriter.write(textArea.getText());
fileWriter.close();
} catch (IOException e1){
e1.printStackTrace();
}
}
}
}


import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
import javax.swing.border.LineBorder;


public class DiaryList extends JDialog{
private static File file = null;
private File [] files = null;
private File text = null;
private JPanel allPanel;
static {
file = new File("G:/Diary");
}
public DiaryList(){
super();
setModal(true);
setTitle("日志列表");
setBounds(100,100,500,375);
final JScrollPane scrollPane = new JScrollPane();
getContentPane().add(scrollPane);
files = file.listFiles();
allPanel = new JPanel();
allPanel.setPreferredSize(new Dimension(450, files.length * 36));
scrollPane.setViewportView(allPanel);
for (int i = 0; i < files.length; i++){
String name = "  "+files[i].getName();
name = name.substring(0, name.length() - 4);
final JPanel onePanel = new JPanel();
allPanel.add(onePanel);
onePanel.setBorder(new LineBorder(Color.BLACK, 1, false));
onePanel.setLayout(new BorderLayout());
final JLabel label = new JLabel();
label.setPreferredSize(new Dimension(330, 0));
label.setText(name);
onePanel.add(label, BorderLayout.WEST);
final JButton delButton = new JButton();
delButton.setText("刪除");
delButton.setName("" + i);
delButton.addActionListener(new DelButtonActionListener());
onePanel.add(delButton, BorderLayout.CENTER);
final JButton seeButton = new JButton();
seeButton.setText("查看");
seeButton.setName(""+i);
seeButton.addActionListener(new SeeButtonActionListener());
onePanel.add(seeButton, BorderLayout.EAST);
}
final JButton returnButton = new JButton();
returnButton.setText("返回");
returnButton.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
setVisible(false);
}
});
getContentPane().add(returnButton,  BorderLayout.SOUTH);
}
private class SeeButtonActionListener implements ActionListener{

@Override
public void actionPerformed(ActionEvent e) {
JButton button = (JButton)e.getSource();
String name = button.getName();
text = files[Integer.valueOf(name)];
setVisible(false);
}
}
private class DelButtonActionListener implements ActionListener{

@Override
public void actionPerformed(ActionEvent e) {
JButton button = (JButton) e.getSource();
int index = Integer.valueOf(button.getName());
files[index].delete();
allPanel.remove(index);
SwingUtilities.updateComponentTreeUI(allPanel);
}
}
public File getText(){
return text;
}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值