Hej allihop, jag har gjort ett program som funkar som en telefonlista.
Koden ser ut enligt följande:
Nu är problemet att jag vill med detta program kunna göra att det kommer upp en lista istället som jag kan sortera, alltså en grafisk application.
Ett exempel i boken jag använder ser ut såhär:
Min fråga är, (ska skicka in uppgiften senast 23.55 ikv), kan jag på något sätt sätta ihop någon del av exemplet och min egen kod så att "telefonboken/listan" blir grafisk istället för att endast köras i netbeans?
Tack på förhand!!
Koden ser ut enligt följande:
HTML-kod:
package Arbete; import java.util.*; import java.io.FileWriter; import java.io.BufferedWriter; import java.io.IOException; import java.io.PrintWriter; import java.io.FileReader; import java.io.BufferedReader; import java.io.FileNotFoundException; public class Telefonbok2 { public static void main(String[] args) throws IOException{ Vector kontakt = new Vector(); boolean fortsatt = true; do{ System.out.println("\nMeny"); System.out.println("1. Mata in namn " + "och nummer"); System.out.println("2. Skriv ut namn " + "och nummer"); System.out.println("3. Ta bort ett nummer"); System.out.println("4. Spara kontakt i en fil"); System.out.println("5. Hämta kontakt från en fil"); System.out.println("6. Avsluta"); System.out.print("Ditt val: "); char val = Keyboard.readChar(); switch(val){ case'1': System.out.println("Avsluta med #."); System.out.print("Namn: "); String n = Keyboard.readString(); while (!n.equals("#")){ System.out.print("Nummer: "); int r = Keyboard.readInt(); person temp = new person(n, r); kontakt.add(temp); System.out.print("Namn: "); n = Keyboard.readString(); } break; case'2': if (kontakt.isEmpty()){ System.out.println("\nVektorn är tom"); } else{ System.out.println("\nKontaktlista"); for (int i = 0; i < kontakt.size(); i++){ System.out.println(kontakt.elementAt(i)); } } break; case'3': System.out.print("\nTa bort nummer: "); int nummer = Keyboard.readInt(); if (nummer >= kontakt.size() || nummer < 0){ System.out.println("Ej godkänt värde"); } else{ kontakt.removeElementAt(nummer); } case'4': try{ FileWriter fw = new FileWriter("kontakt.txt"); BufferedWriter bw = new BufferedWriter(fw); PrintWriter utFil = new PrintWriter(bw); for (int i = 0; i < kontakt.size(); i++){ person temp = (person)kontakt.elementAt(i); String namn = temp.hämtanamn(); int r = temp.hämtanummer(); utFil.println(namn + "\t" + r); } utFil.close(); } catch(IOException e) { System.out.println("Det misslyckades"); } break; case'5': try{ FileReader fr = new FileReader("kontakt.txt"); BufferedReader inFil = new BufferedReader(fr); String rad = inFil.readLine(); kontakt.removeAllElements(); while (rad != null){ StringTokenizer tokenizer = new StringTokenizer(rad, "\t"); String namn = tokenizer.nextToken(); String r = tokenizer.nextToken(); person temp = new person(namn, r); kontakt.addElement(temp); rad = inFil.readLine(); } inFil.close(); } catch(FileNotFoundException e1){ System.out.println("Filen hittades inte."); } catch(IOException e2){ System.out.println(e2); } case'6': fortsatt = false; break; default: System.out.println("Felinmatning"); } }while (fortsatt == true); } } // Person class /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package Arbete; /** * * @author Emil */ public class person { private String namn; private int nummer; public person(String n, int r){ namn = n; nummer = r; } person(String namn, String r) { throw new UnsupportedOperationException("Inte inlagd än."); } public String hämtanamn(){ return namn; } public int hämtanummer(){ return nummer; } public String toString(){ return (namn + "\t" + nummer); } }
Nu är problemet att jag vill med detta program kunna göra att det kommer upp en lista istället som jag kan sortera, alltså en grafisk application.
Ett exempel i boken jag använder ser ut såhär:
HTML-kod:
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Ex61 extends JFrame implements ActionListener { private JLabel instruktion1; private JLabel instruktion2; private JTextField inruta; private JTextArea utruta; private JButton sort; private String[] namn = new String[20]; private int antal = 0; public Ex61(){ super("Namnlista"); JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); JPanel p3 = new JPanel(); p1.setLayout(new GridLayout(3,1)); getContentPane().add(p1,"North"); getContentPane().add(p2,"Center"); getContentPane().add(p3,"South"); instruktion1 = new JLabel("Skriv in dina uppgifter"); instruktion2 = new JLabel("Tryck sedan på sortera"); inruta = new JTextField(30); utruta = new JTextArea(20, 30); sort = new JButton("Sortera"); p1.add(instruktion1); p1.add(inruta); p1.add(instruktion2); p2.add(utruta); p3.add(sort); inruta.addActionListener(this); sort.addActionListener(this); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); pack(); setVisible(true); } public void actionPerformed(ActionEvent ae){ if(ae.getSource() == inruta){ String data = inruta.getText(); namn[antal++] = data; inruta.setText(""); utruta.append(data + "\n"); } else{ Sort.bubbelSort(namn, antal); utruta.setText(""); for (int i = 0; i < antal; i++){ utruta.append(namn[i] + "\n"); } } }
Min fråga är, (ska skicka in uppgiften senast 23.55 ikv), kan jag på något sätt sätta ihop någon del av exemplet och min egen kod så att "telefonboken/listan" blir grafisk istället för att endast köras i netbeans?
Tack på förhand!!