Βοήθεια με ArrayList Array και Jlist

Συζητήσεις για την Java

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από argate7 » 01 Απρ 2011 13:10

Καλησπέρα,

Αντιμετωπίζω ένα μικρό πρόβλημα. Έχω ένα ArrayList στο οποίο αποθηκεύω 2 String και ένα integer(Όνομα, Επίθετο, Ηλικία). Και θέλω τα στοιχεία του ArrayList να τα εμφανίζω (όλα και τα στοιχεία και τις εγγραφές(Objects)) μέσα σε ένα JList. Ξέρω ότι για να γίνει αυτό πρέπει να μετατρέψω το ArrayList σε Array και μετά να εμφανίζω τα δεδομένα στο JList. Αλλά πως στο καλό θα γίνει αυτό? Έχω δοκιμάσει να φτιάξω κάτι και μου εμφανίζει references και όχι τα στοιχεία.

Κώδικας: Επιλογή όλων

public void ToArray()
    {
        ar = kati.toArray();
    }

    public void printArray()
    {
        for &#40;int i=0;i<ar.length;i++&#41;
        &#123;
        System.out.println&#40;ar&#91;i&#93;.toString&#40;&#41;&#41;;
        &#125;
    &#125;

Το kati είναι το ArrayList μου και το ar είναι το Array μου.
Κάνω κάποιο λάθος σε αυτό το κομμάτι?

Αν μπορέσει κάποιος να με βοηθήσει σε αυτό, ας μου πει και αν γίνεται να εμφανίζονται όλα τα στοιχεία στο JList και με ποιο τρόπο.

Ευχαριστώ πολύ!!!

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από pimpogio » 01 Απρ 2011 15:27

λαθος το κανεις...
δωσε κωδικα συνολικα
η αλλιως δες το DefaultListModel

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από argate7 » 01 Απρ 2011 15:47

Κώδικας: Επιλογή όλων

public class NewClass &#123;

    private ArrayList<lol>kati;
    private Object&#91;&#93; ar;

    public NewClass&#40;&#41;
    &#123;
        kati = new ArrayList<lol>&#40;&#41;;
    &#125;

    public void add&#40;lol l&#41;
    &#123;
        kati.add&#40;l&#41;;
    &#125;

    public Object&#91;&#93; ToArray&#40;&#41;
    &#123;
        return ar = kati.toArray&#40;&#41;;
    &#125;

    public void printArray&#40;&#41;
    &#123;
        for &#40;int i=0;i<ar.length;i++&#41;
        &#123;
        System.out.println&#40;ar&#91;i&#93;.toString&#40;&#41;&#41;;
        &#125;
    &#125;

&#125;

Κώδικας: Επιλογή όλων

public class lol &#123;

    private String s1;
    private String s2;
    private int i1;

    public lol&#40;String s1,String s2,int i1&#41;
    &#123;
        this.s1 = s1;
        this.s2 = s2;
        this.i1 = i1;
    &#125;

&#125;

Κώδικας: Επιλογή όλων

public static void main&#40;String&#91;&#93; args&#41; &#123;
        NewClass1 a = new NewClass1&#40;&#41;;
        Point center = GraphicsEnvironment.getLocalGraphicsEnvironment&#40;&#41;.getCenterPoint&#40;&#41;;
        a.setDefaultCloseOperation&#40;JFrame.EXIT_ON_CLOSE&#41;;
        //g.setSize&#40;230,230&#41;;
        int windowWidth = 230;
        int windowHeight = 250;
        a.setBounds&#40;center.x - windowWidth / 2, center.y - windowHeight / 2, windowWidth,
        windowHeight&#41;;
        a.setResizable&#40;false&#41;;
        a.setVisible&#40;true&#41;;
    &#125;

Κώδικας: Επιλογή όλων

public class NewClass1 extends JFrame implements ActionListener &#123;
    
    JList mylist;
    
    NewClass1&#40;&#41;
    &#123;
        super&#40;"Testing"&#41;;
        Container c = getContentPane&#40;&#41;;
        setLayout&#40;new FlowLayout&#40;&#41;&#41;;
        lol l1 = new lol&#40;"a","a",1&#41;;
        lol l2 = new lol&#40;"b","b",2&#41;;
        NewClass n = new NewClass&#40;&#41;;
        n.add&#40;l1&#41;;
        n.add&#40;l2&#41;;
        mylist = new JList&#40;n.ToArray&#40;&#41;&#41;;
        c.add&#40;mylist&#41;;
        this.setDefaultCloseOperation&#40;EXIT_ON_CLOSE&#41;;
    &#125;

    public void actionPerformed&#40;ActionEvent e&#41; &#123;
        
    &#125;

&#125;

Ευχαριστώ για τη βοήθεια φίλε μου.

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από pimpogio » 01 Απρ 2011 17:39

argate7 έγραψε:

Κώδικας: Επιλογή όλων

public class NewClass &#123;

    private ArrayList<lol>kati;
    private Object&#91;&#93; ar;

    public NewClass&#40;&#41;
    &#123;
        kati = new ArrayList<lol>&#40;&#41;;
    &#125;

    public void add&#40;lol l&#41;
    &#123;
        kati.add&#40;l&#41;;
    &#125;

    public Object&#91;&#93; ToArray&#40;&#41;
    &#123;
        return ar = kati.toArray&#40;&#41;;
    &#125;

    public void printArray&#40;&#41;
    &#123;
        for &#40;int i=0;i<ar.length;i++&#41;
        &#123;
        System.out.println&#40;ar&#91;i&#93;.toString&#40;&#41;&#41;;
        &#125;
    &#125;

&#125;

Κώδικας: Επιλογή όλων

public class lol &#123;

    private String s1;
    private String s2;
    private int i1;

    public lol&#40;String s1,String s2,int i1&#41;
    &#123;
        this.s1 = s1;
        this.s2 = s2;
        this.i1 = i1;
    &#125;

&#125;

Κώδικας: Επιλογή όλων

public static void main&#40;String&#91;&#93; args&#41; &#123;
        NewClass1 a = new NewClass1&#40;&#41;;
        Point center = GraphicsEnvironment.getLocalGraphicsEnvironment&#40;&#41;.getCenterPoint&#40;&#41;;
        a.setDefaultCloseOperation&#40;JFrame.EXIT_ON_CLOSE&#41;;
        //g.setSize&#40;230,230&#41;;
        int windowWidth = 230;
        int windowHeight = 250;
        a.setBounds&#40;center.x - windowWidth / 2, center.y - windowHeight / 2, windowWidth,
        windowHeight&#41;;
        a.setResizable&#40;false&#41;;
        a.setVisible&#40;true&#41;;
    &#125;

Κώδικας: Επιλογή όλων

public class NewClass1 extends JFrame implements ActionListener &#123;
    
    JList mylist;
    
    NewClass1&#40;&#41;
    &#123;
        super&#40;"Testing"&#41;;
        Container c = getContentPane&#40;&#41;;
        setLayout&#40;new FlowLayout&#40;&#41;&#41;;
        lol l1 = new lol&#40;"a","a",1&#41;;
        lol l2 = new lol&#40;"b","b",2&#41;;
        NewClass n = new NewClass&#40;&#41;;
        n.add&#40;l1&#41;;
        n.add&#40;l2&#41;;
        mylist = new JList&#40;n.ToArray&#40;&#41;&#41;;
        c.add&#40;mylist&#41;;
        this.setDefaultCloseOperation&#40;EXIT_ON_CLOSE&#41;;
    &#125;

    public void actionPerformed&#40;ActionEvent e&#41; &#123;
        
    &#125;

&#125;

Ευχαριστώ για τη βοήθεια φίλε μου.

Κώδικας: Επιλογή όλων

public class lol &#123;

    private String s1;
    private String s2;
    private int i1;

    public lol&#40;String s1,String s2,int i1&#41;
    &#123;
        this.s1 = s1;
        this.s2 = s2;
        this.i1 = i1;
    &#125;
public String toString&#40;&#41;&#123;
return s1+ ", "+ s2 + ", " + i1;

&#125;

&#125;

Κώδικας: Επιλογή όλων

public class NewClass1 extends JFrame implements ActionListener &#123;
    
    JList mylist;
    DefaultListModel lm;
    NewClass1&#40;&#41;
    &#123;
        super&#40;"Testing"&#41;;
        Container c = getContentPane&#40;&#41;;
        setLayout&#40;new FlowLayout&#40;&#41;&#41;;

      //  NewClass n = new NewClass&#40;&#41;;
     //   n.add&#40;l1&#41;;
     //   n.add&#40;l2&#41;;
        lm=new DefaultListModel&#40;&#41;;
        mylist = new JList&#40;lm&#41;;
        c.add&#40;mylist&#41;;
        this.setDefaultCloseOperation&#40;EXIT_ON_CLOSE&#41;;

        lol l1 = new lol&#40;"a","a",1&#41;;
        lol l2 = new lol&#40;"b","b",2&#41;;
        lm.addElement&#40;l1&#41;; //paradeimga
        lm.addElement&#40;l2&#41;; /paradeigma
    &#125;

    public void actionPerformed&#40;ActionEvent e&#41; &#123;
        
    &#125;

&#125;

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από argate7 » 01 Απρ 2011 17:54

Ναι, αλλά έτσι όμως χάνω το arraylist που θέλω οπωσδήποτε να χρησιμοποιήσω λόγω του ότι μετά από το arraylist θα αποθηκεύω σε ένα text αρχείο.

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από pimpogio » 01 Απρ 2011 19:13

αυτο δε θες ?

Κώδικας: Επιλογή όλων

//Lol.java
public class Lol &#123;

    private String s1;
    private String s2;
    private int i1;

    public Lol&#40;String s1, String s2, int i1&#41; &#123;
        this.s1 = s1;
        this.s2 = s2;
        this.i1 = i1;
    &#125;

    @Override
    public String toString&#40;&#41; &#123;
 return "<html>Onoma&#58;"+s1 +"<br />"+ "Epitheto&#58;" + s2+ "<br />" + "Ilikia&#58;" + i1 +"<br /></html>";
    &#125;
&#125;

//NewClass1.java
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GraphicsEnvironment;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.AbstractListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;

public class NewClass1 extends JFrame implements ActionListener &#123;

    private List<Lol> kati;
    private JList mylist;
    private JScrollPane sp;
    private MyListModel lm;

    public NewClass1&#40;&#41; &#123;
        super&#40;"Testing"&#41;;
        setDefaultCloseOperation&#40;JFrame.EXIT_ON_CLOSE&#41;;
        Point center = GraphicsEnvironment.getLocalGraphicsEnvironment&#40;&#41;.getCenterPoint&#40;&#41;;
        //g.setSize&#40;230,230&#41;;
        int windowWidth = 230;
        int windowHeight = 250;
        setBounds&#40;center.x - windowWidth / 2, center.y - windowHeight / 2, windowWidth,
                windowHeight&#41;;
        setResizable&#40;false&#41;;
        Container c = getContentPane&#40;&#41;;
        setLayout&#40;new FlowLayout&#40;&#41;&#41;;

        kati = new ArrayList<Lol>&#40;&#41;;
        lm = new MyListModel&#40;kati&#41;;
        mylist = new JList&#40;lm&#41;;

        sp = new JScrollPane&#40;mylist&#41;;
        c.add&#40;sp&#41;;
        this.setDefaultCloseOperation&#40;EXIT_ON_CLOSE&#41;;
        Lol l1 = new Lol&#40;"a", "a", 1&#41;;
        Lol l2 = new Lol&#40;"b", "b", 2&#41;;
        kati.add&#40;l1&#41;;
        kati.add&#40;l2&#41;;
    &#125;

    @Override
    public void actionPerformed&#40;ActionEvent e&#41; &#123;
    &#125;

    private class MyListModel extends AbstractListModel &#123;

        private List<Lol> k;

        public MyListModel&#40;List<Lol> k&#41; &#123;
            this.k = k;
            for &#40;Lol l &#58; k&#41; &#123;
                l.toString&#40;&#41;;
            &#125;
        &#125;

        @Override
        public int getSize&#40;&#41; &#123;
            return k.size&#40;&#41;;
        &#125;

        @Override
        public Lol getElementAt&#40;int index&#41; &#123;
            return k.get&#40;index&#41;;
        &#125;
    &#125;

    public static void main&#40;String&#91;&#93; args&#41; &#123;

        SwingUtilities.invokeLater&#40;new Runnable&#40;&#41; &#123;

            @Override
            public void run&#40;&#41; &#123;
                new NewClass1&#40;&#41;.setVisible&#40;true&#41;;
            &#125;
        &#125;&#41;;

    &#125;
&#125;
Συνημμένα
jlist.jpg
jlist.jpg (10.11 KiB) Προβλήθηκε 3757 φορές

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από argate7 » 01 Απρ 2011 23:03

Ναι, φίλε νομίζω πως είναι καλό. Θα κάνω και κάποιες άλλες δοκιμές. Ευχαριστώ πολύ για τη βοήθεια!

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από argate7 » 01 Απρ 2011 23:45

Κάτι τελευταίο...

Θέλω να κάνω το ίδιο μόνο που θέλω να διαβάζω από ένα text αρχείο το οποίο είναι του στυλ...

Όνομα1,Επίθετο1,1821
Όνομα2,Επίθετο2,1900
κλπ.

Ξέρω ότι θέλω bufferedreader και filereader, το θέμα μου είναι πως του λέω να διαβάζει μία μία τις γραμμές, αλλά κάπου κάνω λάθος και μου βάζει όλες τις εγγραφές μέσα σε ένα element του arraylist. Και έτσι όποτε καλώ το δεύτερο για παράδειγμα μου βγάζει outofbounds exception και αυτό γιατί μόνο αν του βάλω να ψάξει στην kati.get(0) δουλεύει. Στα άλλα βγάζει το exception που σου είπα.

Ο κώδικας που έχω γράψει για να κάνει αυτή τη δουλειά είναι ο εξής...

Κώδικας: Επιλογή όλων

try &#123;
            BufferedReader br = new BufferedReader&#40;new FileReader&#40;"names.txt"&#41;&#41;;
            FileReader fr = new FileReader&#40;"names.txt"&#41;;
            s = new Scanner&#40;fr&#41;;
            while &#40;&#40;inputLine = br.readLine&#40;&#41;&#41; != null&#41; &#123;
                //System.out.println&#40;inputLine&#41;;
                String&#91;&#93; l = inputLine.split&#40;","&#41;;
                for &#40;int i = 0; i < l.length; i++&#41; &#123;
                    //System.out.println&#40;l&#91;i&#93;&#41;;
                    lastname = l&#91;0&#93;;
                    firstname = l&#91;1&#93;;
                    age= Integer.parseInt&#40;l&#91;2&#93;&#41;;
                &#125;
                NewClass a = new NewClass&#40;&#41;;
                lol l = new lol&#40;lastname, firstname, age&#41;;
                a.add&#40;e&#41;;
                a.listAll&#40;&#41;; //μία μέθοδος που υλοποίησα για να μου τους εμφανίζει όλους. Θα τη βάλω πιο κάτω να τη δεις.
            &#125;
        &#125; catch &#40;FileNotFoundException e&#41; &#123;
            System.out.println&#40;"There is no file"&#41;;
        &#125; catch &#40;IOException e&#41; &#123;
            System.out.println&#40;"Problem with io"&#41;;
        &#125;

Κώδικας: Επιλογή όλων

 public void listAll&#40;&#41;
    &#123;
        for&#40;int i=0; i<kati.size&#40;&#41;;i++&#41;
        &#123;
            System.out.println&#40;kati.get&#40;i&#41;.toString&#40;&#41;&#41;;
        &#125;
    &#125;

Ευχαριστώ πολύ και για τη βοήθεια σου, αλλά περισσότερο για το χρόνο σου!!!

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από pimpogio » 02 Απρ 2011 02:13

den katalava ti enoeis
alla me auti tin allagi diabazeis apo file newfile kai ta pernas stin JList meso tis ArrayList

Κώδικας: Επιλογή όλων

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GraphicsEnvironment;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import javax.swing.AbstractListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;

public class NewClass1 extends JFrame implements ActionListener &#123;

    private List<Lol> kati;
    private JList mylist;
    private JScrollPane sp;
    private MyListModel lm;

    public NewClass1&#40;&#41; &#123;
        super&#40;"Testing"&#41;;
        setDefaultCloseOperation&#40;JFrame.EXIT_ON_CLOSE&#41;;
        Point center = GraphicsEnvironment.getLocalGraphicsEnvironment&#40;&#41;.getCenterPoint&#40;&#41;;
        //g.setSize&#40;230,230&#41;;
        int windowWidth = 230;
        int windowHeight = 250;
        setBounds&#40;center.x - windowWidth / 2, center.y - windowHeight / 2, windowWidth,
                windowHeight&#41;;
        setResizable&#40;false&#41;;
        Container c = getContentPane&#40;&#41;;
        setLayout&#40;new FlowLayout&#40;&#41;&#41;;

        kati = new ArrayList<Lol>&#40;&#41;;
        lm = new MyListModel&#40;kati&#41;;
        mylist = new JList&#40;lm&#41;;

        sp = new JScrollPane&#40;mylist&#41;;
        c.add&#40;sp&#41;;
        this.setDefaultCloseOperation&#40;EXIT_ON_CLOSE&#41;;
        try &#123;
            BufferedReader br = new BufferedReader&#40;new FileReader&#40;"newfile"&#41;&#41;;
           String inputLine;
            while &#40;&#40;inputLine = br.readLine&#40;&#41;&#41; != null&#41; &#123;
                //System.out.println&#40;inputLine&#41;;
                String&#91;&#93; l = inputLine.split&#40;","&#41;;
                Lol p = new Lol&#40;l&#91;0&#93;, l&#91;1&#93;, Integer.parseInt&#40;l&#91;2&#93;.trim&#40;&#41;&#41; &#41;;
                kati.add&#40;p&#41;;
               
            &#125;
        &#125; catch &#40;FileNotFoundException e&#41; &#123;
            System.out.println&#40;"There is no file"&#41;;
            e.printStackTrace&#40;&#41;;
        &#125; catch &#40;IOException e&#41; &#123;
            System.out.println&#40;"Problem with io"&#41;;
            e.printStackTrace&#40;&#41;;
        &#125; 
        
    &#125;

    @Override
    public void actionPerformed&#40;ActionEvent e&#41; &#123;
    &#125;

    private class MyListModel extends AbstractListModel &#123;

        private List<Lol> k;

        public MyListModel&#40;List<Lol> k&#41; &#123;
            this.k = k;
            for &#40;Lol l &#58; k&#41; &#123;
                l.toString&#40;&#41;;
            &#125;
        &#125;

        @Override
        public int getSize&#40;&#41; &#123;
            return k.size&#40;&#41;;
        &#125;

        @Override
        public Lol getElementAt&#40;int index&#41; &#123;
            return k.get&#40;index&#41;;
        &#125;
    &#125;

    public static void main&#40;String&#91;&#93; args&#41; &#123;

        SwingUtilities.invokeLater&#40;new Runnable&#40;&#41; &#123;

            @Override
            public void run&#40;&#41; &#123;
                new NewClass1&#40;&#41;.setVisible&#40;true&#41;;
            &#125;
        &#125;&#41;;

    &#125;
&#125;


Συνημμένα
jlist.jpg

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από argate7 » 02 Απρ 2011 03:48

Γιατί όμως ρε φιλαράκι τα εμφανίζει 15 φορές; Έχει γίνει κάποιο λάθος; Το λάθος έχει γίνει απο σένα ή είναι απο τον κώδικα μου για την εμφάνιση όλου του arraylist;

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από argate7 » 02 Απρ 2011 05:14

Λοιπόν, το έφτιαξα χάρη στην πολύτιμη βοήθεια σου, αλλά δεν μου το εμφανίζει το frame. ΤΟ κάνω setvisible(true), αλλά και πάλι τζίφος. Εσένα εμφανίστηκε κανονικά με τον υπάρχον κώδικα ή έκανες και τίποτε άλλο?
Εγώ τρέχω τον κώδικα από την Main τάξη, όχι όπως εσύ. Δεν νομίζω να φταίει αυτό, έτσι δεν είναι?

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από argate7 » 02 Απρ 2011 12:03

Όλα εντάξει. Μια φλασιά του netbeans ήταν και πάει. Νά'σαι καλά φίλε μου!! Ευχαριστώ πολύ.

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από pimpogio » 02 Απρ 2011 12:58

to emfanizei polles fores giati to exo valei poles fores sto text arxeio sth Main klasi sou kane entigrafi epikolisi tin main apo thn NewClass1

argate7
Δημοσιεύσεις: 233
Εγγραφή: 30 Σεπ 2009 02:38

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από argate7 » 03 Απρ 2011 13:01

Να σε ρωτήσω κάτι ακόμα ρε φίλε? Αν θέλω να διαγράψω ένα στοιχείο της λίστας, τί πρέπει να κάνω? Θέλω να διαγράφεται από τη λίστα, από την arraylist και στο τέλος να διαγράφεται και από το text αρχείο. Και να μου εμφανίζει αμέσως στη λίστα αυτά που έχουν μείνει? Για παράδειγμα από 3 τα στοιχεία που υπάρχουν διαγράφω ένα και μένουν 2. Οπότε θέλω να εμφανίζονται αυτά τα 2 μόνο. Πως θα μπορέσω να υλοποιήσω κάτι τέτοιο? Μπορείς να μου δώσεις ένα μικρό παράδειγμα?

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

Βοήθεια με ArrayList Array και Jlist

Δημοσίευση από pimpogio » 03 Απρ 2011 19:17

Κώδικας: Επιλογή όλων

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GraphicsEnvironment;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.AbstractListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;

public class NewClass1 extends JFrame implements ActionListener&#123;

    private List<Lol> kati;
    private JList mylist;
    private JScrollPane sp;
    private MyListModel lm;
    private BufferedReader br;
    public NewClass1&#40;&#41; throws FileNotFoundException, IOException &#123;
        super&#40;"Testing"&#41;;
        setDefaultCloseOperation&#40;JFrame.EXIT_ON_CLOSE&#41;;
        Point center = GraphicsEnvironment.getLocalGraphicsEnvironment&#40;&#41;.getCenterPoint&#40;&#41;;
        //g.setSize&#40;230,230&#41;;
        int windowWidth = 230;
        int windowHeight = 250;
        setBounds&#40;center.x - windowWidth / 2, center.y - windowHeight / 2, windowWidth,
                windowHeight&#41;;
        //setResizable&#40;false&#41;;
        Container c = getContentPane&#40;&#41;;
        setLayout&#40;new FlowLayout&#40;&#41;&#41;;

        kati = new ArrayList<Lol>&#40;&#41;;
        lm = new MyListModel&#40;kati&#41;;
        mylist = new JList&#40;lm&#41;;
        sp = new JScrollPane&#40;mylist&#41;;
        c.add&#40;sp&#41;;
        JButton jb=new JButton&#40;"remove"&#41;;
        c.add&#40;jb&#41;;
        jb.addActionListener&#40;this&#41;;
        setDefaultCloseOperation&#40;EXIT_ON_CLOSE&#41;;
        br = new BufferedReader&#40;new FileReader&#40;"newfile"&#41;&#41;;
         
           String inputLine;
            while &#40;&#40;inputLine = br.readLine&#40;&#41;&#41; != null&#41; &#123;
                //System.out.println&#40;inputLine&#41;;
                String&#91;&#93; l = inputLine.split&#40;","&#41;;
                Lol p = new Lol&#40;l&#91;0&#93;, l&#91;1&#93;, Integer.parseInt&#40;l&#91;2&#93;.trim&#40;&#41;&#41; &#41;;
                kati.add&#40;p&#41;;
               
            &#125;
        pack&#40;&#41;;
    &#125;

    @Override
    public void actionPerformed&#40;ActionEvent e&#41; &#123;
        if&#40;kati.size&#40;&#41;>mylist.getSelectedIndex&#40;&#41;&#41;&#123;
/*
EDO TO SVINIS KAI APO TO ARXEIO AS POUME OPOS THES
*/
       kati.remove&#40;mylist.getSelectedIndex&#40;&#41;&#41;;
        lm.update&#40;&#41;;
        mylist.repaint&#40;&#41;;
        &#125;
        
    &#125;

    private class MyListModel extends AbstractListModel &#123;

        private List<Lol> k;

        public MyListModel&#40;List<Lol> k&#41; &#123;
            this.k = k;
            for &#40;Lol l &#58; k&#41; &#123;
                l.toString&#40;&#41;;
            &#125;
        &#125;

        public void update&#40;&#41;&#123;
            for &#40;Lol l &#58; k&#41; &#123;
                l.toString&#40;&#41;;
            &#125;          
        &#125;
        @Override
        public int getSize&#40;&#41; &#123;
            return k.size&#40;&#41;;
        &#125;

        @Override
        public Lol getElementAt&#40;int index&#41; &#123;
            return k.get&#40;index&#41;;
        &#125;
    &#125;

    public static void main&#40;String&#91;&#93; args&#41; &#123;

        SwingUtilities.invokeLater&#40;new Runnable&#40;&#41; &#123;

            @Override
            public void run&#40;&#41; &#123;
                try &#123;
                    NewClass1 a=new NewClass1&#40;&#41;;
                    a.setVisible&#40;true&#41;;
                &#125; catch &#40;FileNotFoundException ex&#41; &#123;
                    Logger.getLogger&#40;NewClass1.class.getName&#40;&#41;&#41;.log&#40;Level.SEVERE, null, ex&#41;;
                &#125; catch &#40;IOException ex&#41; &#123;
                    Logger.getLogger&#40;NewClass1.class.getName&#40;&#41;&#41;.log&#40;Level.SEVERE, null, ex&#41;;
                &#125;
                
                
            &#125;
        &#125;&#41;;

    &#125;
&#125;

Απάντηση

Επιστροφή στο “Java”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες