Guest User

Untitled

a guest
Jun 24th, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.72 KB | None | 0 0
  1. import java.awt.event.ActionEvent;
  2. import java.awt.event.ActionListener;
  3. import java.awt.event.KeyEvent;
  4. import java.awt.event.MouseEvent;
  5. import java.awt.event.MouseListener;
  6. import java.awt.event.WindowEvent;
  7. import java.awt.event.WindowListener;
  8.  
  9. import java.io.BufferedReader;
  10. import java.io.File;
  11. import java.io.FileReader;
  12. import java.io.FileWriter;
  13. import java.io.IOException;
  14.  
  15. import javax.swing.*;
  16. import javax.swing.filechooser.FileNameExtensionFilter;
  17.  
  18. public class MyFrame extends JFrame {
  19.  
  20. int list_position = 0;
  21. String thisfile = null;
  22. File defaultdir = new File("C:\\Vocabulary\\data\\");
  23.  
  24. JTextField textfield_englisch;
  25. JTextField textfield_deutsch;
  26. JTextField showfilename;
  27.  
  28. JTextArea text_englisch;
  29. JTextArea text_deutsch;
  30.  
  31. JList list_englisch;
  32. JList list_deutsch;
  33.  
  34. DefaultListModel dataE;
  35. DefaultListModel dataD;
  36.  
  37. JButton speichern;
  38. JButton öffnen;
  39. JButton neuladen;
  40. JButton alleslöschen;
  41. JButton neu;
  42.  
  43. JFileChooser fc = new JFileChooser();
  44.  
  45. public MyFrame(String title) {
  46.  
  47. this.getContentPane().setLayout(null);
  48. this.initWindow();
  49.  
  50. setTitle(title);
  51.  
  52. this.addWindowListener(new WindowListener() {
  53.  
  54. public void windowClosed(WindowEvent arg0) {
  55.  
  56. }
  57.  
  58. public void windowActivated(WindowEvent e) {
  59.  
  60. }
  61.  
  62. public void windowClosing(WindowEvent e) {
  63. System.exit(0);
  64. }
  65.  
  66. public void windowDeactivated(WindowEvent e) {
  67.  
  68. }
  69.  
  70. public void windowDeiconified(WindowEvent e) {
  71.  
  72. }
  73.  
  74. public void windowIconified(WindowEvent e) {
  75.  
  76. }
  77.  
  78. public void windowOpened(WindowEvent e) {
  79.  
  80. }
  81.  
  82. });
  83.  
  84. }
  85.  
  86.  
  87. protected void initWindow()
  88. {
  89. // Instanzieren:
  90. textfield_englisch = new JTextField();
  91. textfield_deutsch = new JTextField();
  92. showfilename = new JTextField();
  93.  
  94. // Hier auch gleich die Beschriftung des Buttons mit angeben:
  95. speichern = new JButton("Speichern");
  96. öffnen = new JButton("Öffnen");
  97. neuladen = new JButton("Neu laden");
  98. alleslöschen = new JButton("Alles löschen");
  99. neu = new JButton("Neu");
  100.  
  101. dataE = new DefaultListModel();
  102. dataD = new DefaultListModel();
  103.  
  104. list_englisch = new JList(dataE);
  105. list_deutsch = new JList(dataD);
  106.  
  107. text_englisch = new JTextArea();
  108. text_deutsch = new JTextArea();
  109.  
  110.  
  111. textfield_englisch.setBounds(50, 50, 250, 30);
  112. textfield_deutsch.setBounds(350, 50, 250, 30);
  113. showfilename.setBounds(50, 530, 550, 30);
  114.  
  115. showfilename.setEditable(false);
  116. showfilename.setText("Keine Datei geöffnet");
  117.  
  118. speichern.setBounds(350, 10, 250, 30);
  119. öffnen.setBounds(50, 10, 250, 30);
  120. neuladen.setBounds(50, 490, 250, 30);
  121. alleslöschen.setBounds(350, 490, 250, 30);
  122. neu.setBounds(200, 570, 250,30);
  123.  
  124. neuladen.setEnabled(false);
  125. alleslöschen.setEnabled(false);
  126.  
  127. list_englisch.setBounds(50, 120, 250, 350);
  128. list_deutsch.setBounds(350, 120, 250, 350);
  129.  
  130. list_englisch.setSelectionMode(1);
  131. list_deutsch.setSelectionMode(1);
  132.  
  133. text_englisch.setBounds(50, 90, 250, 30);
  134. text_deutsch.setBounds(350, 90, 250, 30);
  135.  
  136. text_englisch.setText("Englisch");
  137. text_deutsch.setText("Deutsch");
  138.  
  139. text_englisch.setEditable(false);
  140. text_deutsch.setEditable(false);
  141.  
  142. // Elemente dem Fenster hinzufügen:
  143. // (this ist ein Zeiger auf dieses Objekt, also das Fenster)
  144. this.getContentPane().add(textfield_englisch);
  145. this.getContentPane().add(textfield_deutsch);
  146. this.getContentPane().add(showfilename);
  147. this.getContentPane().add(speichern);
  148. this.getContentPane().add(öffnen);
  149. this.getContentPane().add(neuladen);
  150. this.getContentPane().add(alleslöschen);
  151. this.getContentPane().add(neu);
  152. this.getContentPane().add(list_englisch);
  153. this.getContentPane().add(list_deutsch);
  154. this.getContentPane().add(text_englisch);
  155. this.getContentPane().add(text_deutsch);
  156.  
  157.  
  158.  
  159. // Das kommt ganz am Ende:
  160. this.pack();
  161.  
  162.  
  163.  
  164.  
  165. speichern.addActionListener(new ActionListener() {
  166.  
  167. public void actionPerformed(ActionEvent arg0) {
  168. speichernClicked();
  169. }
  170.  
  171. });
  172.  
  173.  
  174. öffnen.addActionListener(new ActionListener() {
  175.  
  176. public void actionPerformed(ActionEvent arg0) {
  177. öffnenClicked();
  178. }
  179.  
  180. });
  181.  
  182. neuladen.addActionListener(new ActionListener() {
  183.  
  184. public void actionPerformed(ActionEvent arg0) {
  185. neuladenClicked();
  186. }
  187.  
  188. });
  189.  
  190. alleslöschen.addActionListener(new ActionListener() {
  191.  
  192. public void actionPerformed(ActionEvent arg0) {
  193. alleslöschenClicked();
  194. }
  195.  
  196. });
  197.  
  198. neu.addActionListener(new ActionListener() {
  199.  
  200. public void actionPerformed(ActionEvent arg0) {
  201. neuClicked();
  202. }
  203.  
  204. });
  205.  
  206.  
  207. list_englisch.addMouseListener(new MouseListener(){
  208.  
  209. @Override
  210. public void mouseClicked(MouseEvent arg0) {
  211.  
  212. if (arg0.getButton()== 3){
  213. setListD();
  214. löschenClicked();
  215. }
  216.  
  217. }
  218.  
  219. @Override
  220. public void mouseEntered(MouseEvent arg0) {
  221. // TODO Auto-generated method stub
  222.  
  223. }
  224.  
  225. @Override
  226. public void mouseExited(MouseEvent arg0) {
  227. // TODO Auto-generated method stub
  228.  
  229. }
  230.  
  231. @Override
  232. public void mousePressed(MouseEvent arg0) {
  233.  
  234. setListD();
  235.  
  236. }
  237.  
  238. @Override
  239. public void mouseReleased(MouseEvent arg0) {
  240. // TODO Auto-generated method stub
  241.  
  242. }
  243.  
  244. });
  245.  
  246. list_deutsch.addMouseListener(new MouseListener(){
  247.  
  248. @Override
  249. public void mouseClicked(MouseEvent arg0) {
  250.  
  251. if (arg0.getButton()== 3){
  252. setListE();
  253. löschenClicked();
  254. }
  255. }
  256.  
  257. @Override
  258. public void mouseEntered(MouseEvent arg0) {
  259. // TODO Auto-generated method stub
  260.  
  261. }
  262.  
  263. @Override
  264. public void mouseExited(MouseEvent arg0) {
  265. // TODO Auto-generated method stub
  266.  
  267. }
  268.  
  269. @Override
  270. public void mousePressed(MouseEvent arg0) {
  271.  
  272. setListE();
  273.  
  274.  
  275. }
  276.  
  277. @Override
  278. public void mouseReleased(MouseEvent arg0) {
  279. // TODO Auto-generated method stub
  280.  
  281. }
  282.  
  283. });
  284.  
  285. textfield_englisch.addActionListener(new ActionListener() {
  286.  
  287. public void actionPerformed(ActionEvent e) {
  288. addClicked();
  289. }
  290.  
  291. });
  292.  
  293. textfield_deutsch.addActionListener(new ActionListener() {
  294.  
  295. public void actionPerformed(ActionEvent e) {
  296. addClicked();
  297. }
  298.  
  299. });
  300.  
  301. }
  302.  
  303. protected void neuClicked() {
  304.  
  305. if(dataE.size() == 0){
  306. thisfile = null;
  307. showfilename.setText("Keine Datei geöffnet");
  308. speichernClicked();
  309. }
  310. else{
  311. speichernClicked();
  312. alleslöschenClicked();
  313. thisfile = null;
  314. showfilename.setText("Keine Datei geöffnet");
  315. speichernClicked();
  316. }
  317. }
  318.  
  319.  
  320. protected void neuladenClicked() {
  321.  
  322.  
  323. dataE.clear();
  324. dataD.clear();
  325.  
  326. FileReaderT(thisfile);
  327.  
  328. if(dataE.size() == 0) alleslöschen.setEnabled(false);
  329. else alleslöschen.setEnabled(true);
  330.  
  331.  
  332. }
  333.  
  334. protected void alleslöschenClicked() {
  335.  
  336. dataE.clear();
  337. dataD.clear();
  338. alleslöschen.setEnabled(false);
  339.  
  340. }
  341.  
  342. protected void setListD() {
  343.  
  344. list_position = list_englisch.getSelectedIndex();
  345. list_deutsch.setSelectedIndex(list_position);
  346.  
  347. }
  348.  
  349. protected void setListE() {
  350.  
  351. list_position = list_deutsch.getSelectedIndex();
  352. list_englisch.setSelectedIndex(list_position);
  353.  
  354. }
  355.  
  356. protected void addClicked() {
  357.  
  358. try {
  359. String eingabe1 = textfield_englisch.getText();
  360. String eingabe2 = textfield_deutsch.getText();
  361. if (eingabe1.length() != 0 && eingabe2.length() != 0) {
  362.  
  363.  
  364. dataE.addElement(eingabe1);
  365. dataD.addElement(eingabe2);
  366.  
  367. textfield_englisch.setText("");
  368. textfield_deutsch.setText("");
  369.  
  370. textfield_englisch.requestFocusInWindow();
  371.  
  372. alleslöschen.setEnabled(true);
  373. }
  374.  
  375. }
  376. catch (NumberFormatException e) {
  377. JOptionPane.showMessageDialog(this,
  378. "Es wurde kein oder ein Falscher Wert eingetragen",
  379. "Fehlermeldung", JOptionPane.WARNING_MESSAGE);
  380. }
  381. }
  382.  
  383. protected void speichernClicked() {
  384.  
  385. if(thisfile == null){
  386.  
  387. FileNameExtensionFilter filter = new FileNameExtensionFilter("e & d Files", "e", "d");
  388. fc.setFileFilter(filter);
  389. fc.setCurrentDirectory(defaultdir);
  390.  
  391. int val = fc.showSaveDialog(rootPane);
  392.  
  393. if(val == JFileChooser.APPROVE_OPTION){
  394.  
  395. String filename = fc.getSelectedFile().getAbsoluteFile().toString();
  396.  
  397. filename = filename.substring(0, filename.lastIndexOf(46));
  398.  
  399. thisfile = filename;
  400.  
  401. FileWriterT(thisfile);
  402. neuladen.setEnabled(true);
  403.  
  404. showfilename.setText(thisfile);
  405. }
  406. }
  407.  
  408. else FileWriterT(thisfile);
  409.  
  410. }
  411.  
  412.  
  413. protected void löschenClicked() {
  414.  
  415. dataE.remove(list_position);
  416. dataD.remove(list_position);
  417.  
  418. alleslöschen.setEnabled(false);
  419.  
  420. }
  421.  
  422. protected void öffnenClicked() {
  423. FileNameExtensionFilter filter = new FileNameExtensionFilter("e & d Files", "e", "d");
  424. fc.setFileFilter(filter);
  425. fc.setCurrentDirectory(defaultdir);
  426.  
  427. int val = fc.showOpenDialog(rootPane);
  428.  
  429. if(val == JFileChooser.APPROVE_OPTION){
  430.  
  431. dataE.clear();
  432. dataD.clear();
  433.  
  434. String filename = fc.getSelectedFile().getAbsoluteFile().toString();
  435. filename = filename.substring(0, filename.length()-2);
  436.  
  437. thisfile = filename;
  438.  
  439. FileReaderT(filename);
  440.  
  441. showfilename.setText(thisfile);
  442.  
  443.  
  444. }
  445. neuladen.setEnabled(true);
  446.  
  447. if(dataE.size() == 0) alleslöschen.setEnabled(false);
  448. else alleslöschen.setEnabled(true);
  449.  
  450. }
  451.  
  452. public static void main(String[] args) {
  453. MyFrame theAppWindow = new MyFrame("Vocabulary - Creator");
  454. theAppWindow.setBounds(10, 10, 660, 680);
  455. theAppWindow.show();
  456. }
  457.  
  458.  
  459.  
  460.  
  461. public void FileWriterT(String f){
  462. int counter = 0;
  463. FileWriter writer;
  464. File file;
  465. // File anlegen
  466. file = new File(f + ".e");
  467. try {
  468. // new FileWriter(file ,true) - falls die Datei bereits existiert
  469. // werden die Bytes an das Ende der Datei geschrieben
  470.  
  471. // new FileWriter(file) - falls die Datei bereits existiert
  472. // wird diese überschrieben
  473. writer = new FileWriter(file);
  474.  
  475. // Text wird in den Stream geschrieben
  476.  
  477. while(counter < dataE.size()){
  478. writer.write((String) dataE.getElementAt(counter));
  479. writer.write(System.getProperty("line.separator"));
  480. counter++;
  481. }
  482.  
  483.  
  484. // Schreibt den Stream in die Datei
  485. // Sollte immer am Ende ausgeführt werden, sodass der Stream
  486. // leer ist und alles in der Datei steht.
  487. writer.flush();
  488.  
  489. // Schließt den Stream
  490. writer.close();
  491. } catch (IOException e) {
  492. e.printStackTrace();
  493. }
  494. counter = 0;
  495. file = new File(f + ".d");
  496. try {
  497. // new FileWriter(file ,true) - falls die Datei bereits existiert
  498. // werden die Bytes an das Ende der Datei geschrieben
  499.  
  500. // new FileWriter(file) - falls die Datei bereits existiert
  501. // wird diese überschrieben
  502. writer = new FileWriter(file);
  503.  
  504. // Text wird in den Stream geschrieben
  505.  
  506. while(counter < dataD.size()){
  507. writer.write((String) dataD.getElementAt(counter));
  508. writer.write(System.getProperty("line.separator"));
  509. counter++;
  510. }
  511.  
  512.  
  513.  
  514. // Schreibt den Stream in die Datei
  515. // Sollte immer am Ende ausgeführt werden, sodass der Stream
  516. // leer ist und alles in der Datei steht.
  517. writer.flush();
  518.  
  519. // Schließt den Stream
  520. writer.close();
  521. } catch (IOException e) {
  522. e.printStackTrace();
  523. }
  524. }
  525.  
  526.  
  527. public void FileReaderT(String file) {
  528.  
  529. BufferedReader readerE;
  530. BufferedReader readerD;
  531. String zeileE=null;
  532. String zeileD=null;
  533.  
  534. try {
  535. readerE = new BufferedReader(new FileReader(file + ".e"));
  536. readerD = new BufferedReader(new FileReader(file + ".d"));
  537. zeileE = readerE.readLine();
  538. zeileD = readerD.readLine();
  539.  
  540.  
  541. while (zeileE != null && zeileD != null) {
  542. dataE.addElement(zeileE);
  543. dataD.addElement(zeileD);
  544. zeileE = readerE.readLine();
  545. zeileD = readerD.readLine();
  546. }
  547.  
  548. } catch (IOException e) {
  549. System.err.println("Error2 :"+e);
  550. }
  551. }
  552. }
Add Comment
Please, Sign In to add comment