import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import javax.swing.*; public class Brukergrensesnitt extends JFrame implements ActionListener { private JTextField forfatterFelt,sideantallFelt,prisFelt,fagområdetFelt,skolefagFelt,klassetrinnFelt,sjangerFelt, målformFelt,språkFelt; private JButton regFag,regSkole,regNorsk,regUtenlandsk,visBokregister,Lagre,Slett,visdir; private JTextArea info,brows,feilmld; private Bokregister register; public Brukergrensesnitt () { super ("Bokregistervindu"); register = new Bokregister(); forfatterFelt = new JTextField(10); sideantallFelt = new JTextField(10); prisFelt = new JTextField(4); fagområdetFelt = new JTextField(8); skolefagFelt = new JTextField(8); klassetrinnFelt = new JTextField(5); sjangerFelt = new JTextField(8); målformFelt = new JTextField(2); språkFelt = new JTextField(8); regFag = new JButton("Registrer fagbok"); regFag.addActionListener( this ); regSkole = new JButton("Registrer skolebok"); regSkole.addActionListener( this ); regNorsk = new JButton("Registrer norsk roman"); regNorsk.addActionListener( this ); regUtenlandsk = new JButton("Registrer utenlandsk roman"); regUtenlandsk.addActionListener( this ); visBokregister = new JButton("Vis bokregister"); visBokregister.addActionListener( this ); Lagre = new JButton("Lagre"); Lagre.addActionListener(this); Slett = new JButton("Slett"); Slett.addActionListener(this); visdir = new JButton("Visfiler"); visdir.addActionListener(this); info = new JTextArea(20,35); info.setEditable( false ); brows = new JTextArea(5,35); brows.setEditable(false); feilmld = new JTextArea(3,35); feilmld.setEditable(false); lagLayout(); setDefaultCloseOperation( WindowConstants.DO_NOTHING_ON_CLOSE ); setSize( 450, 250 ); setLocation( 600, 0 ); setVisible( true ); } public void lagLayout() { Container c = getContentPane(); c.setLayout( new FlowLayout() ); c.add( new JLabel( "Forfatter" ) ); c.add( forfatterFelt ); c.add(new JLabel( "Sideantall")); c.add( sideantallFelt); c.add( new JLabel ("Pris")); c.add(prisFelt); c.add(new JLabel ("Fagområdet")); c.add(fagområdetFelt); c.add(new JLabel("Skolefag")); c.add(skolefagFelt); c.add(new JLabel ("Klassetrinn")); c.add(klassetrinnFelt); c.add(new JLabel ("Sjanger")); c.add(sjangerFelt); c.add(new JLabel("Målform(b = bokmål,n = nynorsk)")); c.add(målformFelt); c.add(new JLabel ("Språk")); c.add(språkFelt); c.add(regFag); c.add(regSkole); c.add(regNorsk); c.add(regUtenlandsk); c.add(visBokregister); c.add(Lagre); c.add(Slett); c.add(visdir); c.add(brows); c.add(new JScrollPane(brows)); c.add(feilmld); c.add(new JScrollPane(feilmld)); c.add(info); c.add(new JScrollPane(info)); } public void RegisterFag() { try { String forfatter = forfatterFelt.getText(); int SideAntall = Integer.parseInt(sideantallFelt.getText()); int Pris = Integer.parseInt(prisFelt.getText()); String Fag = fagområdetFelt.getText(); Bok fb = new Fagbok(forfatter,SideAntall,Pris,Fag); register.settInn(fb); info.setText("Fagbok er registrert"+ "\n"); }catch(Exception e) { feilmld.setText("Skriv inn tekst først for Fagbok"); } } public void RegisterSkole() { try { String forfatter = forfatterFelt.getText(); int SideAntall = Integer.parseInt(sideantallFelt.getText()); int Pris = Integer.parseInt(prisFelt.getText()); int Klasse = Integer.parseInt(klassetrinnFelt.getText()); String Fag = fagområdetFelt.getText(); Bok sk = new Skolebok(forfatter,SideAntall,Pris,Klasse,Fag); register.settInn(sk); feilmld.setText("Skolebok er registrert"+ "\n"); }catch(Exception e) { feilmld.setText("Skriv inn tekst først for Skolebok"); } } public void RegisterNorsk() { try { String forfatter = forfatterFelt.getText(); int SideAntall = Integer.parseInt(sideantallFelt.getText()); int Pris = Integer.parseInt(prisFelt.getText()); String Sjanger = sjangerFelt.getText(); String målform = målformFelt.getText(); Roman nr = new NorskRoman(forfatter,SideAntall,Pris,Sjanger,målform); register.settInn(nr); feilmld.setText("Norsk roman er registrert"+ "\n"); }catch(Exception e) { feilmld.setText("Skriv inn tekst først for Norsk Roman"); } } public void RegisterUtenlandsk() { try { String forfatter = forfatterFelt.getText(); int SideAntall = Integer.parseInt(sideantallFelt.getText()); int Pris = Integer.parseInt(prisFelt.getText()); String Sjanger = sjangerFelt.getText(); String språk = språkFelt.getText(); Roman ur = new UtenlandskRoman(forfatter,SideAntall,Pris,Sjanger,språk); register.settInn(ur); feilmld.setText("Utenlandsk Roman er registrert"+ "\n"); }catch(Exception e) { feilmld.setText("Skriv inn tekst først for Utenlandsk Roman"); } } public void Info() throws IOException { String ifo = register.skrivListe(info); System.out.println(ifo); } int i = 0; public void LagreFil() throws IOException { if(info.getText().isEmpty()) feilmld.setText("Registrer en Bok før du lagrer"); else { Lagret(); } } public void Lagret() throws IOException { String path = "D:\\workspace\\Oppg4uke\\Boks.txt"; File f = new File(path); FileWriter fw = new FileWriter(f); BufferedWriter bf = new BufferedWriter(fw); PrintWriter pw = new PrintWriter(bf); pw.write(info.getText()); pw.close(); if (f.exists()) { f = new File ("D:\\workspace\\Oppg4uke\\Boks "+ i++ +".txt"); FileWriter fs = new FileWriter(f); BufferedWriter bs = new BufferedWriter(fs); PrintWriter ps = new PrintWriter(bs); ps.write(info.getText()); ps.close(); if(f.createNewFile()) feilmld.setText("Filen er lagret"); else System.out.println("ERROR"); } } public void Slett() { JFileChooser fc = new JFileChooser("D:\\workspace\\Oppg4uke\\"); int result = fc.showOpenDialog(fc); File file = fc.getSelectedFile(); if(result == JFileChooser.APPROVE_OPTION) file.delete(); } public void VisDir() { File dir = new File("D:\\workspace\\Oppg4uke\\"); if(dir.isDirectory()) { File [] files = dir.listFiles(); for(File f : files) { if(f.isFile() && !f.isHidden()) brows.append(f.getName() + "\n"); } } } public void actionPerformed(ActionEvent e) { if(e.getSource() == regFag) RegisterFag(); else if(e.getSource() == regSkole) RegisterSkole(); else if(e.getSource() == Lagre) try { LagreFil(); } catch (IOException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } else if(e.getSource() == regNorsk) RegisterNorsk(); else if(e.getSource() == regUtenlandsk) RegisterUtenlandsk(); else if(e.getSource() == visBokregister) try { Info(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } else if(e.getSource()== Slett) Slett(); else if(e.getSource() == visdir) VisDir(); } }