欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實(shí)現(xiàn)超級(jí)實(shí)用的日記本

 更新時(shí)間:2015年05月11日 11:42:55   投稿:hebedich  
一個(gè)用Java語(yǔ)言編寫(xiě)的,實(shí)現(xiàn)日記本的基本編輯功能、各篇日記之間的上下翻頁(yè)、查詢(xún)?nèi)沼泝?nèi)容的程序。全部代碼分享給大家,有需要的小伙伴參考下。

演示圖

演示圖

CalendarApp.java

package calenda;
 
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
 
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.border.TitledBorder;
 
public class CalendarApp extends JFrame{
   
  private CalendarPanel calendarPanel=new CalendarPanel();
  private static JLabel jlblLearn=new JLabel("開(kāi)始準(zhǔn)備記單詞");
  private String versionID="歡迎使用版本1.0.20150427";
  private JLabel jlblVersionID=new JLabel(versionID);
  private JButton jbtPrior=new JButton("←");
  private JButton jbtNext=new JButton("→");
  private JButton jbtDiary=new JButton("寫(xiě)日記");
  private JButton jbtScanDiary=new JButton("看日記");
  private static int year;
  public void init()
  {
    year=calendarPanel.getYear();
    calendarPanel.setBackground(Color.WHITE);
    /**
     * 添加功能性按鈕到日歷面板下方
     */
    JPanel jpButtons=new JPanel(new FlowLayout());
    //設(shè)置按鈕背景色為白色
    jbtPrior.setBackground(Color.WHITE);
    jbtNext.setBackground(Color.WHITE);
    jbtDiary.setBackground(Color.WHITE);
    jbtScanDiary.setBackground(Color.WHITE);
    /*
     * 給四個(gè)按鈕添加鼠標(biāo)事件,使其更加炫酷
     */
    //一、后退按鈕
    jbtPrior.addMouseListener(new MouseListener(){
 
      @Override
      public void mouseClicked(MouseEvent arg0) {
        // TODO Auto-generated method stub
         
      }
 
      @Override
      public void mouseEntered(MouseEvent arg0) {
        // TODO Auto-generated method stub
        jbtPrior.setForeground(Color.GREEN);
      }
 
      @Override
      public void mouseExited(MouseEvent arg0) {
        // TODO Auto-generated method stub
        jbtPrior.setForeground(Color.BLACK);
      }
 
      @Override
      public void mousePressed(MouseEvent arg0) {
        // TODO Auto-generated method stub
         
      }
 
      @Override
      public void mouseReleased(MouseEvent arg0) {
        // TODO Auto-generated method stub
         
      }
       
    });
    //二、前進(jìn)按鈕
        jbtNext.addMouseListener(new MouseListener(){
 
          @Override
          public void mouseClicked(MouseEvent arg0) {
            // TODO Auto-generated method stub
             
          }
 
          @Override
          public void mouseEntered(MouseEvent arg0) {
            // TODO Auto-generated method stub
            jbtNext.setForeground(Color.GREEN);
          }
 
          @Override
          public void mouseExited(MouseEvent arg0) {
            // TODO Auto-generated method stub
            jbtNext.setForeground(Color.BLACK);
          }
 
          @Override
          public void mousePressed(MouseEvent arg0) {
            // TODO Auto-generated method stub
             
          }
 
          @Override
          public void mouseReleased(MouseEvent arg0) {
            // TODO Auto-generated method stub
             
          }
           
        });
        //三、寫(xiě)日記按鈕
        jbtDiary.addMouseListener(new MouseListener(){
 
          @Override
          public void mouseClicked(MouseEvent arg0) {
            // TODO Auto-generated method stub
             
          }
 
          @Override
          public void mouseEntered(MouseEvent arg0) {
            // TODO Auto-generated method stub
            jbtDiary.setForeground(Color.GREEN);
          }
 
          @Override
          public void mouseExited(MouseEvent arg0) {
            // TODO Auto-generated method stub
            jbtDiary.setForeground(Color.BLACK);
          }
 
          @Override
          public void mousePressed(MouseEvent arg0) {
            // TODO Auto-generated method stub
             
          }
 
          @Override
          public void mouseReleased(MouseEvent arg0) {
            // TODO Auto-generated method stub
             
          }
           
        });
        //四、看日記按鈕
        jbtScanDiary.addMouseListener(new MouseListener(){
 
          @Override
          public void mouseClicked(MouseEvent arg0) {
            // TODO Auto-generated method stub
             
          }
 
          @Override
          public void mouseEntered(MouseEvent arg0) {
            // TODO Auto-generated method stub
            jbtScanDiary.setForeground(Color.GREEN);
          }
 
          @Override
          public void mouseExited(MouseEvent arg0) {
            // TODO Auto-generated method stub
            jbtScanDiary.setForeground(Color.BLACK);
          }
 
          @Override
          public void mousePressed(MouseEvent arg0) {
            // TODO Auto-generated method stub
             
          }
 
          @Override
          public void mouseReleased(MouseEvent arg0) {
            // TODO Auto-generated method stub
             
          }
           
        });
    jpButtons.add(jbtPrior);
    jpButtons.add(jbtNext);
    jpButtons.add(jbtDiary);
    jpButtons.add(jbtScanDiary);
    jpButtons.setBackground(Color.WHITE);
    /**
     * 添加日歷主要組件
     */
    JPanel jpCalendar=new JPanel(new BorderLayout());
    jpCalendar.add(calendarPanel,BorderLayout.CENTER);
    jpCalendar.add(jpButtons,BorderLayout.SOUTH);
     
    /**
     * 添加背單詞模塊
     */
    JPanel jpLearn=new JPanel(new FlowLayout());
    jpLearn.setBorder(new TitledBorder("開(kāi)心背單詞"));
    jpLearn.add(jlblLearn);
    jpLearn.setBackground(Color.WHITE);
    /**
     * 添加版本號(hào)信息
     */
    JPanel jpVersionID=new JPanel(new FlowLayout());
    Font font=new Font("宋體",Font.PLAIN,4);
    jpVersionID.setFont(font);
    jpVersionID.add(jlblVersionID);
    jpVersionID.setBackground(Color.WHITE);
    /**
     * 容器面板,合并記單詞與版本號(hào)模塊
     */
    JPanel jpBelow=new JPanel(new BorderLayout(2,1));
    jpBelow.add(jpLearn,BorderLayout.CENTER);
    jpBelow.add(jpVersionID,BorderLayout.SOUTH);
     
    this.add(jpCalendar,BorderLayout.CENTER);
    this.add(jpBelow,BorderLayout.SOUTH);
    this.setBackground(Color.WHITE);
    this.setSize(700, 500);
    this.setLocationRelativeTo(null);
    this.setTitle("多功能日歷");
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    this.setVisible(true);
     
    jbtScanDiary.addActionListener(new ActionListener()
    {
      @Override
      public void actionPerformed(ActionEvent e) {
          new Thread(new thread_scanDiary()).start();
      }
    });
    jbtDiary.addActionListener(new ActionListener()
    {
 
      @Override
      public void actionPerformed(ActionEvent e) {
        //獲取本地系統(tǒng)時(shí)間
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");//設(shè)置日期格式
        String time=df.format(new Date());
        new Thread(new thread_keepDiary(time)).start();
      }
    });
     
     
     
    jbtPrior.addActionListener(new ActionListener()
    {
      @Override
      public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        int currentMonth=calendarPanel.getMonth();
        if(currentMonth==0)
        {
          calendarPanel.setYear(year);
          year--;
        }
        calendarPanel.setMonth((currentMonth-1)%12);
      }
    });
     
    jbtNext.addActionListener(new ActionListener()
    {
 
      @Override
      public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        int currentMonth=calendarPanel.getMonth();
        if(currentMonth==11)
        {
          calendarPanel.setYear(++year);
        }
        calendarPanel.setMonth((currentMonth+1)%12);
      }
    });
  }
   
 
  public static void main(String[] args) throws InterruptedException {
    // TODO Auto-generated method stub
    SwingUtilities.invokeLater(new Runnable(){
      @Override
      public void run() {
        // TODO Auto-generated method stub
        new CalendarApp().init();
        new Thread(new thread_showEnglish(jlblLearn)).start();
      }
    });
  }
   
 
}

CalendarPanel.java

/**
 * 本程序功能是進(jìn)行日歷主面板布局
 */
package calenda;
 
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.text.DateFormatSymbols;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;
 
import javax.swing.*;
import javax.swing.border.LineBorder;
 
public class CalendarPanel extends JPanel {
  /**
   * 聲明數(shù)據(jù)變量
   */
  private static final long serialVersionUID = 1L;
  private JLabel jlblHeader=new JLabel(" ",JLabel.CENTER);
  private JLabel[] jlblDay=new JLabel[49];
  private Calendar calendar=new GregorianCalendar();
  private int year0=calendar.get(Calendar.YEAR);
  private int month0=calendar.get(Calendar.MONTH);
  private int day0=calendar.get(Calendar.DAY_OF_MONTH);
  private int month;
  private int year;
  private int day;
  private JPanel jpDays=new JPanel(new GridLayout(0,7));
  Font font1=new Font("宋體",Font.ITALIC,20);
  Font font2=new Font("宋體",Font.BOLD,26);
  Font font3=new Font("宋體",Font.BOLD,30);
  public CalendarPanel()
  {
    //設(shè)置日歷頭部件以及日期標(biāo)簽的背景色為白色
    jlblHeader.setBackground(Color.WHITE);
    jpDays.setBackground(Color.WHITE);
    //聲明每個(gè)標(biāo)簽
    for(int i=0;i<49;i++)
    {
      jlblDay[i]=new JLabel();
      jlblDay[i].setBorder(new LineBorder(Color.LIGHT_GRAY,1));
      jlblDay[i].setHorizontalAlignment(JLabel.RIGHT);
      jlblDay[i].setVerticalAlignment(JLabel.TOP);
    }
    calendar=new GregorianCalendar();
    month=calendar.get(Calendar.MONTH);
    year=calendar.get(Calendar.YEAR);
    day=calendar.get(Calendar.DATE);
    //更新日歷
    updateCalendar();
    showHeader();
    showDays();
    //添加到主面板
    this.setLayout(new BorderLayout());
    this.add(jlblHeader, BorderLayout.NORTH);
    this.add(jpDays, BorderLayout.CENTER);
  }
  private void showHeader()
  {
    SimpleDateFormat sdf=new SimpleDateFormat("MMMM yyyy",Locale.CHINA);
    String header=sdf.format(calendar.getTime());
    jlblHeader.setText(header);
    jlblHeader.setForeground(Color.BLUE);
    jlblHeader.setFont(font3);
  }
  private void showDayNames()
  {
    DateFormatSymbols dfs=new DateFormatSymbols(Locale.CHINA);
    String dayNames[]=dfs.getWeekdays();
    for(int i=0;i<7;i++)
    {
      jlblDay[i].setText(dayNames[i+1]);
      jlblDay[i].setForeground(Color.BLUE);
      jlblDay[i].setHorizontalAlignment(JLabel.CENTER);
      jlblDay[i].setFont(font2);
      jpDays.add(jlblDay[i]);
    }
  }
  public void showDays()
  {
    jpDays.removeAll();
    showDayNames();
    int startingDayOfMonth=calendar.get(Calendar.DAY_OF_WEEK);
    Calendar cloneCalendar=(Calendar)calendar.clone();
    cloneCalendar.add(Calendar.DATE, -1);
    int daysInPrecedingMonth=cloneCalendar.getActualMaximum(Calendar.DAY_OF_MONTH);
    for(int i=0;i<startingDayOfMonth-1;i++)
    {
      jlblDay[i+7].setForeground(Color.LIGHT_GRAY);
      jlblDay[i+7].setHorizontalAlignment(JLabel.CENTER);
      jlblDay[i+7].setText(daysInPrecedingMonth-startingDayOfMonth+2+i+"");
      jlblDay[i+7].setFont(font1);
      jpDays.add(jlblDay[i+7]);
    }
    int daysInCurrentMonth=calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
    for(int i=1;i<=daysInCurrentMonth;i++)
    {
      if(i==day0&&year==year0&&month==month0)
      {
        jlblDay[i-2+startingDayOfMonth+7].setForeground(Color.red);
        jlblDay[i-2+startingDayOfMonth+7].setHorizontalAlignment(JLabel.CENTER);
        jlblDay[i-2+startingDayOfMonth+7].setText(i+"");
        jlblDay[i-2+startingDayOfMonth+7].setFont(font2);
        jpDays.add(jlblDay[i-2+startingDayOfMonth+7]);
      }
      else
      {
        jlblDay[i-2+startingDayOfMonth+7].setForeground(Color.darkGray);
        jlblDay[i-2+startingDayOfMonth+7].setHorizontalAlignment(JLabel.CENTER);
        jlblDay[i-2+startingDayOfMonth+7].setText(i+"");
        jlblDay[i-2+startingDayOfMonth+7].setFont(font1);
        jpDays.add(jlblDay[i-2+startingDayOfMonth+7]);
      }
    }
    int j=1;
    for(int i=daysInCurrentMonth-1+startingDayOfMonth+7;i%7!=0;i++)
    {
      jlblDay[i].setForeground(Color.LIGHT_GRAY);
      jlblDay[i].setHorizontalAlignment(JLabel.CENTER);
      jlblDay[i].setText(j++ +"");
      jlblDay[i].setFont(font1);
      jpDays.add(jlblDay[i]);
    }
    jpDays.repaint();
  }
  public void updateCalendar()
  {
    calendar.set(Calendar.YEAR, year);
    calendar.set(Calendar.MONTH, month);
    calendar.set(Calendar.DATE, 1);
    month=calendar.get(Calendar.MONTH);
    year=calendar.get(Calendar.YEAR);
    day=calendar.get(Calendar.DATE);
  }
  public int getMonth()
  {
    return month;
  }
  public int getYear()
  {
    return year;
  }
  public void setMonth(int month)
  {
    this.month=month;
    updateCalendar();
    showHeader();
    showDays();
  }
  public void setYear(int year)
  {
    this.year=year;
    updateCalendar();
    showHeader();
    showDays();
  }
}

Diary.java

/**
 * 本程序?yàn)槿沼涱?lèi)
 * 最后修改日期為2015-4-27
 */
package calenda;
 
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
 
import javax.swing.JOptionPane;
 
public class Diary implements Serializable {
 
  /**
   * 數(shù)據(jù)域
   */
  //私有變量
  private String filename;
  private String theme;
  private String content;
  //含參構(gòu)造方法
  public Diary(String filename,String theme,String content)
  {
    if(theme.length()==0)
    {
      JOptionPane.showMessageDialog(null, "無(wú)論心情如何,總得有個(gè)主題吧!");
    }
    else if(content.length()==0)
    {
      JOptionPane.showMessageDialog(null, "把開(kāi)心的不開(kāi)心的都盡情寫(xiě)下吧!");
    }
    else
    {
      File CalendarDiaryFile=new File("C:/Calendar/Diary");
      if(!CalendarDiaryFile.exists())
      {
        CalendarDiaryFile.mkdirs();
      }
    this.filename="C:/Calendar/Diary/"+filename+".dat";
    this.theme=theme;
    this.content=content;
    }
  }
  public void write() throws Exception
  {
    File file=new File(filename);
    FileOutputStream fos = new FileOutputStream(file);
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    oos.writeObject(this);
    oos.close();
  }
  public Diary read() throws Exception
  {
    File file=new File(filename);
    FileInputStream fis=new FileInputStream(file);
    ObjectInputStream ois = new ObjectInputStream(fis);
    Diary d=(Diary) ois.readObject();
    ois.close();
    return d;
  }
  /**
   * 變量get()方法
   * @return
   */
  public String getTheme()
  {
    return this.theme;
  }
  public String getContent()
  {
    return this.content;
  }
  /**
   * 變量set()方法
   * @param comment
   */
}

thread_keepDiary.java

/**
 * 備忘錄線(xiàn)程
 * 用于單擊標(biāo)簽時(shí)可以存儲(chǔ)日記
 * 目前只考慮年月日時(shí)間點(diǎn),不標(biāo)記具體時(shí)間點(diǎn)
 */
package calenda;
 
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.nio.file.Files;
 
import javax.swing.*;
 
public class thread_keepDiary extends JFrame implements Runnable {
 
  private JFrame jf=this;
  private JTextArea jta=new JTextArea();
  private JButton jbtSave=new JButton("保存");
  private JLabel jlblTitle=new JLabel("主題");
  private JTextField jtfTitle=new JTextField(16);
  private String id;
  public thread_keepDiary(String time)
  {
     
    JPanel jpTitle=new JPanel();
    jpTitle.setLayout(new BorderLayout());
    jpTitle.add(jlblTitle, BorderLayout.WEST);
    jpTitle.add(jtfTitle,BorderLayout.CENTER);
    jta.setLineWrap(true);
    jta.setWrapStyleWord(true);
    JScrollPane jsp=new JScrollPane(jta);
    jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    this.id=time;
    jbtSave.addActionListener(new ActionListener()
    {
      @Override
      public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub
         
        String theme=jtfTitle.getText().trim();
        String content=jta.getText();
         
        Diary d_today=new Diary(id,theme,content);
        try
        {
          d_today.write();
          JOptionPane.showMessageDialog(null, "保存成功!");
          jf.dispose();
        }
        catch(Exception e)
        {
          e.printStackTrace();
        }
      }
    });
    this.setTitle("備忘錄"+id);
    this.add(jsp,BorderLayout.CENTER);
    this.add(jpTitle, BorderLayout.NORTH);
    this.add(jbtSave, BorderLayout.SOUTH);
    this.setSize(500,500);
    this.setLocationRelativeTo(null);
    this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
     
  }
  @Override
  public void run() {
    this.setVisible(true);
  }
 
}

thread_mottoSparkle.java

package calenda;
 
import javax.swing.JLabel;
 
public class thread_mottoSparkle implements Runnable{
  private JLabel jlbl;
  public thread_mottoSparkle(JLabel jlbl)
  {
    this.jlbl=jlbl;
  }
  @Override
  public void run() {
    String content=jlbl.getText();
    int L=content.length();
    int index=0;
    while(true)
    {
      jlbl.setText(content.substring(0, index));
      try
      {
        Thread.sleep(250);
      }
      catch(Exception ex)
      {
        ex.printStackTrace();
      }
      index++;
      if(index==(L+1))
        index=0;
    }
  }
 
}

thread_scanDiary.java

/**
* 查看日記線(xiàn)程編寫(xiě)
*/
package calenda;
 
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
 
import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
 
public class thread_scanDiary extends JFrame implements Runnable{
  /**
   * 聲明變量區(qū)
   */
  private static final long serialVersionUID = 1L;
  //日歷數(shù)據(jù)庫(kù)存放路徑
  private String path="C:/Calendar/Diary";
  //日歷總個(gè)數(shù)
  private static int num;
  //聲明日歷文件
  private File file;
  private File[] Diary;
  //聲明JTable模型
  private JTable jtable;
  //聲明格言面板及標(biāo)簽及內(nèi)容等
  private JPanel jpMotto=new JPanel();
  private JLabel jlblMotto=new JLabel();
  private Font font=new Font("宋體",Font.ITALIC,20);
  private String wish="唯有專(zhuān)注,才能讓自己成功。";
  //增加彈出式菜單2015-4-26
  private JPopupMenu jPopupMenu1=new JPopupMenu();
  //聲明菜單
  private JMenuItem jmiScan=new JMenuItem("查看");
  private JMenuItem jmiDelete=new JMenuItem("刪除");
  private JMenuItem jmiComment=new JMenuItem("評(píng)論");
  @Override
  public void run() {
    //嘗試彈出式菜單增加子菜單
    jmiScan.setForeground(Color.RED);
    jmiDelete.setForeground(Color.RED);
    jmiComment.setForeground(Color.RED);
    jPopupMenu1.add(jmiScan);
    jPopupMenu1.addSeparator();
    jPopupMenu1.add(jmiDelete);
    jPopupMenu1.addSeparator();
    jPopupMenu1.add(jmiComment);
    /**
     * 智能獲取文件列表
     */
    file = new File(path);
    Diary=file.listFiles();
    num=Diary.length;
    String[] head={"  時(shí)間  ","   主題   "};
    Object[][] diary=new Object[num][2];
    for(int i=0;i<num;i++)
    {
        try{
           String time=Diary[i].getName().replaceFirst(".dat",  "");
           FileInputStream fis=new FileInputStream(Diary[i]);
           ObjectInputStream ois = new ObjectInputStream(fis);
           Diary d=(Diary) ois.readObject();
           ois.close();
           String theme=d.getTheme();
           diary[i][0]=time;
           diary[i][1]=theme;
        }
        catch(Exception ex)
        {
          ex.printStackTrace();
        }
    }
    /**
     * 格言面板取
     */
    jlblMotto.setText(wish);
    jlblMotto.setFont(font);
    jlblMotto.setForeground(Color.RED);
    jpMotto.add(jlblMotto);
    jpMotto.setBackground(Color.WHITE);
    /**
     * 日歷列表面板區(qū)
     */
    final DefaultTableModel tableModel=new DefaultTableModel(diary,head);
    jtable=new JTable(tableModel);
    jtable.setBackground(Color.WHITE);
    jtable.setRowHeight(30);
    jtable.setDoubleBuffered(false);
    jtable.setComponentPopupMenu(jPopupMenu1);
    jtable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();// 設(shè)置table內(nèi)容居中
    tcr.setHorizontalAlignment(SwingConstants.CENTER);// 這句和上句作用一樣
    jtable.setDefaultRenderer(Object.class, tcr);
    JScrollPane jsp=new JScrollPane(jtable);
     
    /**
     * 彈出式菜單事件監(jiān)聽(tīng)器編寫(xiě)
     */
    //查看菜單
    jmiScan.addActionListener(new ActionListener(){
      @Override
      public void actionPerformed(ActionEvent e) {
        if(jtable.getSelectedRow()>=0)
        {
          int index=jtable.getSelectedRow();
          String filename="C:/Calendar/Diary/"+Diary[index].getName();
          File file=new File(filename);
          try
          {
            FileInputStream fis=new FileInputStream(file);
            ObjectInputStream ois = new ObjectInputStream(fis);
            Diary d=(Diary) ois.readObject();
            ois.close();
            JFrame jf=new JFrame();
            JTextArea jta=new JTextArea();
            JLabel jlblTitle=new JLabel("主題");
            JTextField jtfTitle=new JTextField(16);
            JPanel jpTitle=new JPanel();
            jpTitle.setLayout(new BorderLayout());
            jpTitle.add(jlblTitle, BorderLayout.WEST);
            jpTitle.add(jtfTitle,BorderLayout.CENTER);
            jta.setLineWrap(true);
            jta.setWrapStyleWord(true);
            JScrollPane jsp=new JScrollPane(jta);
            jsp.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
            jtfTitle.setText(d.getTheme());
            jta.setText(d.getContent());
            jtfTitle.setEditable(false);
            jta.setEditable(false);
            jf.setTitle("日記 "+Diary[index].getName().replaceFirst(".dat",  ""));
            jf.add(jsp,BorderLayout.CENTER);
            jf.add(jpTitle, BorderLayout.NORTH);
            jf.setSize(400,400);
            jf.setLocationRelativeTo(null);
            jf.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
            jf.setVisible(true);
          }
          catch(Exception ex)
          {
            ex.printStackTrace();
          }
        }
        else
        {
          JOptionPane.showMessageDialog(null, "請(qǐng)先選中一個(gè)日記!");
        }
      }
    });
    //刪除菜單
    jmiDelete.addActionListener(new ActionListener(){
      @Override
      public void actionPerformed(ActionEvent e) {
        if(jtable.getSelectedRow()>=0)
        {
          int index=jtable.getSelectedRow();
          String filename="C:/Calendar/Diary/"+Diary[index].getName();
          File file=new File(filename);
          int option=JOptionPane.showConfirmDialog(null, "你確定要?jiǎng)h除日記"+Diary[index].getName()+"?"); 
           if(option==JOptionPane.YES_OPTION)
           {
             file.delete();
             tableModel.removeRow(index);
            SwingUtilities.updateComponentTreeUI(jtable);
            JOptionPane.showMessageDialog(null, "刪除成功!");
           }
           else
           {
           }
        }
        else
        {
          JOptionPane.showMessageDialog(null, "請(qǐng)先選中一個(gè)日記!");
        }
      }
       
    });
    /**
     * 主框架布局
     */
    this.add(jsp,BorderLayout.CENTER);
    this.add(jpMotto, BorderLayout.SOUTH);
    this.setSize(600, 500);
    this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    this.setLocationRelativeTo(null);
    this.setTitle("日記列表");
    this.setVisible(true);
    new Thread(new thread_mottoSparkle(jlblMotto)).start();
  }
}

thread_showEnglish.java

package calenda;
 
import java.awt.Color;
import java.awt.Font;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.LineNumberReader;
import java.security.SecureRandom;
import java.util.Random;
 
import javax.swing.JLabel;
 
public class thread_showEnglish implements Runnable {
  private static JLabel jlbl=new JLabel();
  Font font=new Font("���ו",Font.BOLD,18);
  public thread_showEnglish(JLabel jlbl)
  {
    this.jlbl=jlbl;
    jlbl.setForeground(Color.MAGENTA);
    jlbl.setFont(font);
  }
  @Override
  public void run() {
    // TODO Auto-generated method stub
    int count=0;
    try
    {
      String file="C:/Calendar/Learning/english_word.txt";
      BufferedReader input = new BufferedReader(new FileReader(file));
      while(input.readLine()!=null)
      {
        count++;
      }
      input.close();
      int[] word = new int[count];
      SecureRandom random = new SecureRandom();
      for(int i=0;i<count;i++)
      {
        word[i]=random.nextInt(count);
      }
      int index=0;
      Thread.sleep(1000);
      while(true)
      {
        BufferedReader input1 = new BufferedReader(new FileReader(file));
        String content="";
        int line=0;
        while((content=input1.readLine())!=null)
        {
          if(line==word[index])
          {
            jlbl.setText(content);
          }
          line++;
        }
        if(index==count-1)
          index=0;
        else
          index++;
        Thread.sleep(3500);
      }
    }
    catch(Exception ex)
    {
      ex.printStackTrace();
    }
  }
}

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • 詳解如何在Java中加密和解密zip文件

    詳解如何在Java中加密和解密zip文件

    在本文中,我們來(lái)學(xué)習(xí)如何用Zip4j庫(kù)創(chuàng)建受密碼保護(hù)的壓縮文件并將其解壓,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2022-09-09
  • Spring中如何獲取request的方法匯總及其線(xiàn)程安全性分析

    Spring中如何獲取request的方法匯總及其線(xiàn)程安全性分析

    這篇文章主要給大家介紹了關(guān)于Spring中如何獲取request的方法匯總及其線(xiàn)程安全性分析的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • idea配置多環(huán)境啟動(dòng)方式dev、test、prod

    idea配置多環(huán)境啟動(dòng)方式dev、test、prod

    這篇文章主要介紹了idea配置多環(huán)境啟動(dòng)方式dev、test、prod,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 淺談Java代理(jdk靜態(tài)代理、動(dòng)態(tài)代理和cglib動(dòng)態(tài)代理)

    淺談Java代理(jdk靜態(tài)代理、動(dòng)態(tài)代理和cglib動(dòng)態(tài)代理)

    下面小編就為大家?guī)?lái)一篇淺談Java代理(jdk靜態(tài)代理、動(dòng)態(tài)代理和cglib動(dòng)態(tài)代理)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • SpringBoot淺析緩存機(jī)制之Ehcache?2.x應(yīng)用

    SpringBoot淺析緩存機(jī)制之Ehcache?2.x應(yīng)用

    EhCache?是一個(gè)純Java的進(jìn)程內(nèi)緩存框架,具有快速、精干等特點(diǎn)。它是Hibernate中的默認(rèn)緩存框架。Ehcache已經(jīng)發(fā)布了3.1版本。但是本文的講解基于2.x版本
    2022-08-08
  • Java多線(xiàn)程下的單例模式參考

    Java多線(xiàn)程下的單例模式參考

    這篇文章主要演示多線(xiàn)程下的單例模式,分別演示了lock和synchronized兩種方案,希望能給大家做一個(gè)參考。
    2016-06-06
  • 深入理解LinkedHashSet集合的底層機(jī)制

    深入理解LinkedHashSet集合的底層機(jī)制

    這篇文章主要介紹了LinkedHashSet的底層機(jī)制詳解,LinkedHashSet根據(jù)元素的hashCode值來(lái)決定元素的存儲(chǔ)位置,同時(shí)使用鏈表維護(hù)元素的次序,?這使得元素看起來(lái)是以插入順序保存的,需要的朋友可以參考下
    2023-10-10
  • Java結(jié)構(gòu)型設(shè)計(jì)模式之組合模式Composite Pattern詳解

    Java結(jié)構(gòu)型設(shè)計(jì)模式之組合模式Composite Pattern詳解

    組合模式,又叫部分整體模式,它創(chuàng)建了對(duì)象組的數(shù)據(jù)結(jié)構(gòu)組合模式使得用戶(hù)對(duì)單個(gè)對(duì)象和組合對(duì)象的訪問(wèn)具有一致性。本文將通過(guò)示例為大家詳細(xì)介紹一下組合模式,需要的可以參考一下
    2022-11-11
  • java解析Excel文件的方法實(shí)例詳解

    java解析Excel文件的方法實(shí)例詳解

    在日常工作中,我們常常會(huì)進(jìn)行文件讀寫(xiě)操作,除去我們最常用的純文本文件讀寫(xiě),更多時(shí)候我們需要對(duì)Excel中的數(shù)據(jù)進(jìn)行讀取操作,下面這篇文章主要給大家介紹了關(guān)于java解析Excel文件的方法,需要的朋友可以參考下
    2022-06-06
  • Mybatis的幾種傳參方式詳解

    Mybatis的幾種傳參方式詳解

    這篇文章主要介紹了Mybatis的幾種傳參方式詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論