https://www.myziyuan.com/
- ydcker
- 放到res/raw文件夹中。用getResouces方法把它读取出来。或者放到别的地方也可以,用FileInputStream("文件的绝对地址")读取。
- 2021-02-16 00:00:01
- 网站模板素材下载
- 去应用商店搞一个anyview或者ireader就好,从他们的在线书城里头可以下载到很多的免费的电子书
- 2021-02-11 14:01:17
- zaijianshaoshi
- Java记事本源代码,import java.awt.BorderLayout;import java.awt.Color;import java.awt.FlowLayout;import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.Transferable;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.FocusEvent;import java.awt.event.FocusListener;import java.awt.event.InputEvent;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPopupMenu;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.KeyStroke;import javax.swing.filechooser.FileFilter;public class Demo extends JFrame {private static final long serialVersionUID = 1L; //Eclipse自动生成序列号String name = "无标题";JPanel menuPanel = new JPanel();JTextArea text = new TextAreaMenu(); //文本编辑区JScrollPane jsp = new JScrollPane(text); //可滚动编辑区JMenuBar mnbMain = new JMenuBar();JMenu mnServer = new JMenu("文件(F)");JMenu mnEdit = new JMenu("编辑(E)");JMenuItem[] mniServers = new JMenuItem[]{ new JMenuItem("新建(N)"), new JMenuItem("保存(S)"), new JMenuItem("打开(O)"), new JMenuItem("退出(X)"), };{ menuPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0)); mnbMain.add(mnServer); menuPanel.add(mnbMain); mnbMain.setBounds(5, 0, 50, 30); for (int i = 0; i < mniServers.length; i++) { mnServer.add(mniServers[i]); } mniServers[0].addActionListener(new ActionListener() { //定义"新建"组件操作 @Override public void actionPerformed(ActionEvent arg0) { new Demo(getLocation().x+15,getLocation().y+5); } }); mniServers[1].addActionListener(new ActionListener() { //定义"保存"组件操作 @Override public void actionPerformed(ActionEvent arg0) { chooseToSave(); } }); mniServers[2].addActionListener(new ActionListener() { //定义"打开"组件操作 @Override public void actionPerformed(ActionEvent arg0) { chooseToOpen(); } }); mniServers[3].addActionListener(new ActionListener() { //定义"退出"组件操作 @Override public void actionPerformed(ActionEvent arg0) { System.exit(0); } }); text.addFocusListener(new FocusListener() { @Override public void focusLost(FocusEvent e) { // TODO Auto-generated method stub } @Override public void focusGained(FocusEvent e) { } });}public Demo(int x,int y) { this.setTitle( name +" - 记事本"); this.setBounds(x, y, 600, 400); this.setLayout(new BorderLayout()); this.add(menuPanel, BorderLayout.NORTH); this.add(jsp); jsp.setBounds(5, 30, getWidth()-10, getHeight()-50); this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); this.setVisible(true);}public Demo() { this(200,200);}protected void chooseToSave() { File file = chooseFile(); if(null==file)return; if(file.exists()){ int cho = JOptionPane.showConfirmDialog(this, "文件已存在,是否覆盖?"); System.out.println(cho); if(cho==JOptionPane.OK_OPTION)save(file); else return; } else save(file);}private void save(File file) { name = file.getName(); write(text.getText(),file.getPath()); this.setTitle( name +" - 记事本");}protected void chooseToOpen() { File file = chooseFile(); if(null==file||!file.exists())return; name = file.getName(); Demo.this.setTitle( name +" - 记事本"); read(text,file);} /*********************************************MAIN**************************************************/public static void main(String[] args) { new Demo();}private File chooseFile(){ JFileChooser chooser = new JFileChooser(); //构建文件选择器 chooser.setFileFilter(new FileFilter() { @Override public String getDescription() { return "文本文件"; } @Override public boolean accept(File f) { String name = f.getName().toLowerCase(); return f.isDirectory() || name.endsWith(".txt") ||name.endsWith(".c") || name.endsWith(".java") ||name.endsWith(".cpp"); //可识别文件 } }); int result = chooser.showDialog(null, "确定"); if (result==JFileChooser.APPROVE_OPTION) { File file = chooser.getSelectedFile(); System.out.println(file.getAbsolutePath()); } else { System.out.println("未选择文件"); } return chooser.getSelectedFile();}public static void read(JTextArea text,File file){ //定义读取文件操作 FileReader fr; try { fr = new FileReader(file); BufferedReader br = new BufferedReader(fr); String string = null; while((string = br.readLine()) != null){ text.append(string+"\n"); } br.close(); fr.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }}public static void write(String txt,String fileName){ FileWriter fw; try { fw = new FileWriter(fileName); BufferedWriter bw = new BufferedWriter(fw); bw.write(txt); bw.flush(); bw.close(); fw.close(); } catch (IOException e) { e.printStackTrace(); }}}class TextAreaMenu extends JTextArea implements MouseListener { private static final long serialVersionUID = -2308615404205560110L; private JPopupMenu pop = null; // 弹出菜单 private JMenuItem selectAll = null,copy = null, paste = null, cut = null, cancel=null; // 功能菜单 public TextAreaMenu() { super(); init(); } private void init() { this.addMouseListener(this); this.setSelectedTextColor(Color.red); pop = new JPopupMenu(); pop.add(selectAll = new JMenuItem("全选")); pop.add(copy = new JMenuItem("复制")); pop.add(paste = new JMenuItem("粘贴")); pop.add(cut = new JMenuItem("剪切")); pop.add(cancel = new JMenuItem("撤销")); selectAll.setAccelerator(KeyStroke.getKeyStroke('A', InputEvent.CTRL_MASK)); copy.setAccelerator(KeyStroke.getKeyStroke('C', InputEvent.CTRL_MASK)); paste.setAccelerator(KeyStroke.getKeyStroke('V', InputEvent.CTRL_MASK)); cut.setAccelerator(KeyStroke.getKeyStroke('X', InputEvent.CTRL_MASK)); cancel.setAccelerator(KeyStroke.getKeyStroke('Z', InputEvent.CTRL_MASK)); copy.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { action(e); } }); paste.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { action(e); } }); cut.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { action(e); } }); this.add(pop); } /** * 菜单动作 * @param e */ public void action(ActionEvent e) { String str = e.getActionCommand(); if (str.equals(selectAll.getText())) { // 全选 this.selectAll(); } else if (str.equals(copy.getText())) { // 复制 this.copy(); } else if (str.equals(paste.getText())) { // 粘贴 this.paste(); } else if (str.equals(cut.getText())) { // 剪切 this.cut(); } else if (str.equals(cancel.getText())) { //撤销 this.cut(); } } public JPopupMenu getPop() { return pop; } public void setPop(JPopupMenu pop) { this.pop = pop; } /** * 剪切板中是否有文本数据可供粘贴 * * @return true为有文本数据 */ public boolean isClipboardString() { boolean b = false; Clipboard clipboard = this.getToolkit().getSystemClipboard(); Transferable content = clipboard.getContents(this); try { if (content.getTransferData(DataFlavor.stringFlavor) instanceof String) { b = true; } } catch (Exception e) { } return b; } /** * 文本组件中是否具备复制的条件 * * @return true为具备 */ public boolean isCanCopy() { boolean b = false; int start = this.getSelectionStart(); int end = this.getSelectionEnd(); if (start != end) b = true; return b; } public void mouseClicked(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed(MouseEvent e) { if (e.getButton() == MouseEvent.BUTTON3) { copy.setEnabled(isCanCopy()); paste.setEnabled(isClipboardString()); cut.setEnabled(isCanCopy()); pop.show(this, e.getX(), e.getY()); } } public void mouseReleased(MouseEvent e) { }}
- 2021-02-11 14:01:17