11. januar 2007 - 15:11
Der er
10 kommentarer og 1 løsning
arne_v - hjælp angående arraylist og GUI
arne_v - håber på din hjælp her? Du har i et tidligere indlæg lavet denne kode til en spørger: Info.java: package test; public class Info { private String navn; private String adresse; private String tlf; public Info(String navn, String adresse, String tlf) { this.navn = navn; this.adresse = adresse; this.tlf = tlf; } public String getNavn() { return navn; } public String getAdresse() { return adresse; } public String getTlf() { return tlf; } public String toString() { return navn + ", " + adresse + ", " + tlf; } } InfoList.java: package test; import java.util.*; public class InfoList extends ArrayList { public Info findNavn(String navn) { Info inf; for (int i = 0; i < size(); i++) { inf = (Info)get(i); if(inf.getNavn().equals(navn)) return inf; } return null; } public Info findAdresse(String adresse) { Info inf; for (int i = 0; i < size(); i++) { inf = (Info)get(i); if(inf.getAdresse().equals(adresse)) return inf; } return null; } public Info findTlf(String tlf) { Info inf; for (int i = 0; i < size(); i++) { inf = (Info)get(i); if(inf.getTlf().equals(tlf)) return inf; } return null; } } TestInfo.java: package test; import java.util.*; public class TestInfo { public static void main(String[] args) { InfoList list = new InfoList(); list.add(new Info("Hansen", "Hvænget", "11111111")); list.add(new Info("Jensen", "Jgade", "22222222")); Info inf = list.findNavn("Jensen"); if(inf != null) { System.out.println(inf); } else { System.out.println("Jensen fidne ikke"); } } } Mit spørgsmål er hvordan jeg kan bruge det i GUI? Har en "JList1" som jeg gerne vil ha' udskrevet den søgte person i. Så har jeg et JTextField "search" og en "ok" knap. I "search" skal jeg kunne søge på en person (bare navnet) og via tryk på "ok" skal den fundne person vises i "JList1", kan det lade sig gøre uden alt for meget bøvl?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
11. januar 2007 - 16:36
#1
tror måske det skal gøres sådan her... på knap tryk listener Info inf = findNavn(dinTekstBoks.getText()); Info[] data = new Info[1]; data[0] = inf; ListModel bigData = new AbstractListModel() { public int getSize() { return Short.MAX_VALUE; } public Object getElementAt(int index) { return "Index " + index; } }; JList bigDataList = new JList(bigData); bigDataList.setListData(data)
11. januar 2007 - 18:12
#2
Har prøvet med følgende i min frame; private void soeg_actionPerformed(ActionEvent e) { Info inf = findNavn(soeg.getText()); Info[] data = new Info[1]; data[0] = inf; ListModel bigData = new AbstractListModel() { public int getSize() { return Short.MAX_VALUE; } public Object getElementAt(int index) { return "Index " + index; }}; JList bigDataList = new JList(bigData); bigDataList.setListData(data); } } Men den kommer med følgende fejl: Method 'findNavn' not found.
11. januar 2007 - 18:27
#3
du skal lige lave InfoList list = new InfoList(); Info inf = list.findNavn(soeg.getText());
11. januar 2007 - 19:04
#4
Ok, den kommer ikke med nogen fejl nu, men der sker ingenting når jeg trykker på "soeg" knappen... Skal jeg paste min kode?
11. januar 2007 - 21:48
#5
god ide
12. januar 2007 - 02:43
#6
det er forhåbentlig en gammel tråd du har fundet - idag ville jeg nok lave den en lille smule anderledes JList er ikke noget jeg har erfaring med, men det er der andre som har
12. januar 2007 - 14:28
#7
Her er min kode: Frame: package client; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import javax.swing.AbstractListModel; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.JToolBar; import javax.swing.ListModel; public class Frame1 extends JFrame { ArrayList array = new ArrayList(); private BorderLayout layoutMain = new BorderLayout(); private JPanel panelCenter = new JPanel(); private JMenuBar menuBar = new JMenuBar(); private JMenu menuFile = new JMenu(); private JMenuItem menuFileExit = new JMenuItem(); private JMenu menuHelp = new JMenu(); private JMenuItem menuHelpAbout = new JMenuItem(); private JLabel statusBar = new JLabel(); private JToolBar toolBar = new JToolBar(); private JButton buttonOpen = new JButton(); private JButton buttonClose = new JButton(); private JButton buttonHelp = new JButton(); private ImageIcon imageOpen = new ImageIcon(Frame1.class.getResource("openfile.gif")); private ImageIcon imageClose = new ImageIcon(Frame1.class.getResource("closefile.gif")); private ImageIcon imageHelp = new ImageIcon(Frame1.class.getResource("help.gif")); private JTextField txtNavn = new JTextField(); private JLabel jLabel1 = new JLabel(); private JList JList = new JList(); private JTextField search = new JTextField(); private JLabel jLabel2 = new JLabel(); private JButton soeg = new JButton(); private JButton Tilføj = new JButton(); private JButton HentListe = new JButton(); public Frame1() { try { jbInit(); } catch (Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { this.setJMenuBar( menuBar ); this.getContentPane().setLayout( layoutMain ); panelCenter.setLayout( null ); this.setSize(new Dimension(484, 441)); menuFile.setText( "File" ); menuFileExit.setText( "Exit" ); menuFileExit.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent ae ) { fileExit_ActionPerformed( ae ); } } ); menuHelp.setText( "Help" ); menuHelpAbout.setText( "About" ); menuHelpAbout.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent ae ) { helpAbout_ActionPerformed( ae ); } } ); statusBar.setText( "" ); buttonOpen.setToolTipText( "Open File" ); buttonOpen.setIcon( imageOpen ); buttonClose.setToolTipText( "Close File" ); buttonClose.setIcon( imageClose ); buttonHelp.setToolTipText( "About" ); buttonHelp.setIcon( imageHelp ); txtNavn.setBounds(new Rectangle(15, 60, 220, 30)); jLabel1.setText("Navn"); jLabel1.setBounds(new Rectangle(15, 30, 160, 20)); JList.setBounds(new Rectangle(260, 60, 195, 195)); search.setBounds(new Rectangle(15, 190, 220, 30)); jLabel2.setText("Søg"); jLabel2.setBounds(new Rectangle(15, 165, 170, 20)); soeg.setText("Søg"); soeg.setBounds(new Rectangle(15, 230, 55, 30)); soeg.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { soeg_actionPerformed(e); } }); Tilføj.setText("Ny"); Tilføj.setBounds(new Rectangle(15, 95, 55, 30)); Tilføj.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Tilføj_actionPerformed(e); } }); HentListe.setText("Hent Liste"); HentListe.setBounds(new Rectangle(15, 275, 100, 35)); HentListe.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { HentListe_actionPerformed(e); } }); menuFile.add( menuFileExit ); menuBar.add( menuFile ); menuHelp.add( menuHelpAbout ); menuBar.add( menuHelp ); this.getContentPane().add( statusBar, BorderLayout.SOUTH ); toolBar.add( buttonOpen ); toolBar.add( buttonClose ); toolBar.add( buttonHelp ); this.getContentPane().add( toolBar, BorderLayout.NORTH ); panelCenter.add(HentListe, null); panelCenter.add(Tilføj, null); panelCenter.add(soeg, null); panelCenter.add(jLabel2, null); panelCenter.add(search, null); panelCenter.add(JList, null); panelCenter.add(jLabel1, null); panelCenter.add(txtNavn, null); this.getContentPane().add( panelCenter, BorderLayout.CENTER ); } void fileExit_ActionPerformed(ActionEvent e) { System.exit(0); } private void gem( ){ try { ObjectOutputStream oos = new ObjectOutputStream( new FileOutputStream( "serial.dat" ) ); oos.writeObject ( array ); oos.close(); } catch (Exception fejl) { System.out.println("Fejl: " + fejl.toString()); } } void helpAbout_ActionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(this, new Frame1_AboutBoxPanel1(), "About", JOptionPane.PLAIN_MESSAGE); } private void Tilføj_actionPerformed(ActionEvent e) { Info navn = new Info(); navn.setNavn( txtNavn.getText () ); array.add(navn); JList.setListData(array.toArray()); gem(); } private void HentListe_actionPerformed(ActionEvent e) { try { ObjectInputStream ois = new ObjectInputStream( new FileInputStream ( "serial.dat")); array = (ArrayList) ois.readObject(); ois.close(); array.toArray(); JList.setListData( array.toArray() ); } catch( Exception fejl) { System.out.println("Fejl: " + fejl.toString()); } } private void soeg_actionPerformed(ActionEvent e) { InfoList list = new InfoList(); Info inf = list.findNavn(search.getText()); Info[] data = new Info[1]; data[0] = inf; ListModel bigData = new AbstractListModel() { public int getSize() { return Short.MAX_VALUE; } public Object getElementAt(int index) { return "Index " + index; } }; JList bigDataList = new JList(bigData); bigDataList.setListData(data); } } --------------------------------------------------------- Info klasse: package client; import java.io.Serializable; public class Info implements Serializable { private String navn; public void setNavn(String navn) { this.navn = navn; } public String getNavn() { return navn; } public String toString(){ return navn; } } -------------------------------------------------------------- InfoList klasse: package client; import java.util.*; public class InfoList extends ArrayList { public Info findNavn(String navn) { Info inf; for (int i = 0; i < size(); i++) { inf = (Info)get(i); if(inf.getNavn().equals(navn)) return inf; } return null; } } --------------------------------------------------------------- TestInfo klasse: package client; import java.util.*; public class TestInfo { public static void main(String[] args) { InfoList list = new InfoList(); Info inf = list.findNavn("Hansen"); if(inf != null) { System.out.println(inf); } else { System.out.println("Virker ikke"); } } }
12. januar 2007 - 14:29
#8
Måske er det fordi jeg roder med 2 arrayLister - InfoList og array??
12. januar 2007 - 17:37
#9
nok en god idé lige at kalde din JList for jList altså private JList JList = new JList(); til private JList jList = new JList(); og rette det tilsvarende steder i koden.
15. januar 2007 - 13:06
#10
Tak for hjælpen kalp, send et svar så jeg kan gi' dig point...
15. januar 2007 - 14:11
#11
weeee:) selv tak;)
Kurser inden for grundlæggende programmering