15. december 2003 - 21:43
Der er
26 kommentarer og 1 løsning
Databese og jList
Jeg er i gang med at lave et projekt, men jeg har problemer med en jList Her er den del af koden der driller filmList.setFont(new java.awt.Font("Verdana", 1, 14)); try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection forb = DriverManager.getConnection("jdbc:odbc:projekt"); stmt = forb.createStatement(); ResultSet rs = stmt.executeQuery("select filmNavn from filmkartotek order by filmNavn"); while (rs.next()) { filmList.addItem(rs.getString(2)); } } catch (SQLException e) { JOptionPane.showMessageDialog(null, "Der er opstået en databasefejl","SQL-fejl",JOptionPane.ERROR_MESSAGE); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Der er opstået en uventet fejl","Kørselsfejl",JOptionPane.ERROR_MESSAGE); } filmH.add(filmList, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 90, 200, 200)); men den skriver at der er fejl i filmList.addItem(rs.getString(2)); og at den ikke vil ha en addItem. er der nogen der ved hvad jeg kan gøre for at få det til at virke, og også hjælpe med en update funktion til listen
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
15. december 2003 - 21:46
#1
Nu er jeg ikke nogen ørn til Swing, men jeg troede at I tilføjede data til den bagvedliggende data strukor og så bad JList om at opdatere ?
15. december 2003 - 21:54
#2
JList har ingen metode som hedder addItem(String item) det List, altså AWT
15. december 2003 - 21:57
#3
jeg har selvfølgelig en anden mulighed og det er at lave det i en comboBoxn men synes at det andet vil se bedre ud. Har set et eller andet med at smide resultatet i en vector, men det kunne jeg ikke lige hitte ud af.
15. december 2003 - 21:59
#4
Et eksempel String[] a = {"abe", "kat", "hund"}; jList1.setListData(a);
15. december 2003 - 22:00
#5
Og du kan selvfølge også bruge en Vector Og derefter filmList.setListData(a);
15. december 2003 - 22:02
#6
Jeg tror muligvis at det er opdatering af enkelt elementer og notificering af Swing om det han leder efter. Er det ikke "the MVC way" ?
15. december 2003 - 22:02
#7
hvis du omformer min kode så den kommer til at passe, så er pointene. Jeg kan nemlig ikke lige se hvordan du mener
15. december 2003 - 22:03
#8
Du får den lige fra bunden af java.util.Vector v = new java.util.Vector(); v.addElement("ABE"); v.addElement("KAT"); v.addElement("HUND"); filmList.setListData(v);
15. december 2003 - 22:05
#9
java.util.Vector v = new java.util.Vector(); filmList.setFont(new java.awt.Font("Verdana", 1, 14)); try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection forb = DriverManager.getConnection("jdbc:odbc:projekt"); stmt = forb.createStatement(); ResultSet rs = stmt.executeQuery("select filmNavn from filmkartotek order by filmNavn"); while (rs.next()) { v.addElement(rs.getString(2)); } } // og til slut filmList.setListData(v);
15. december 2003 - 22:11
#10
tester det lige
15. december 2003 - 22:12
#11
Jeg kan ikke lige finde ud af om du er med på ideen, så nu får du revl og krat Det er ren ctrl+C og ctrl+V java.util.Vector v = new java.util.Vector(); filmList.setFont(new java.awt.Font("Verdana", 1, 14)); try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection forb = DriverManager.getConnection("jdbc:odbc:projekt"); stmt = forb.createStatement(); ResultSet rs = stmt.executeQuery("select filmNavn from filmkartotek order by filmNavn"); while (rs.next()) { v.addElement(rs.getString(2)); } filmList.setListData(v); } catch (SQLException e) { JOptionPane.showMessageDialog(null, "Der er opstået en databasefejl","SQL-fejl",JOptionPane.ERROR_MESSAGE); } catch (Exception e) { JOptionPane.showMessageDialog(null, "Der er opstået en uventet fejl","Kørselsfejl",JOptionPane.ERROR_MESSAGE); } filmH.add(filmList, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 90, 200, 200));
15. december 2003 - 22:17
#12
det virker, men den mangler en scroller, hvordan smider jeg sådan en på??
15. december 2003 - 22:19
#13
Du skal putte den ind i et ScrollPane
15. december 2003 - 22:20
#14
har du en hurtig kode på det??
15. december 2003 - 22:22
#15
Kommer her scrollPane1 = new java.awt.ScrollPane(); filmList = new java.awt.List(); scrollPane1.add(filmList);
15. december 2003 - 22:24
#16
Og så skal du selvfølgelig adde scrollPane1 til framen
15. december 2003 - 22:29
#17
så er det klaret, men hvordan kan det være at den kommer frem på den første side når den loader, men når det først kører så virker det fint nok??
15. december 2003 - 22:31
#18
Den er jeg ikke lige helt med på ????
15. december 2003 - 22:33
#19
Hvis det nu ikke var for at min kode fylder 1400 linier kunne jeg bare sende det. Jeg har delt mit program op med faneblade, men den scroller er fremme åp den foreste side selvom det ikke er der den er sat ind, der ud over er listen grå indtil man har kørt den igennem
15. december 2003 - 22:34
#20
Der er ingen data i Listen, med mindre du kører ovenstående vi har været og det skal være inden framen vises på skærmen
15. december 2003 - 22:38
#21
A ha Det kan man ikke ! Du blander AWT og Swing og lige netop faner og JInternalFrames kan man ikke gøre det, AWT vil altid skinne igennem Lav List og scrollpane om til Swing scrollPane1 = new javax.swing.JScrollPane(); filmList = new javax.swing.JList(); scrollPane1.add(filmList); Så kører det igen !!
15. december 2003 - 22:39
#22
har sat det ind som det skal, men det driller. Jeg havde de samme problemer da jeg lavede det i Jbuilder, så jeg skiftede til NetBeans, som jeg varmt kan anbefale. Nå skidt med det, det kigger jeg på i morgen, og hvis alt går galt så bruger jeg comboBoxen. Mange tak for hjælpen
15. december 2003 - 22:39
#23
tester lige en gang til
15. december 2003 - 22:47
#24
kan jeg så bruge addItem eller skal det stadig være med den der vector?
15. december 2003 - 22:50
#25
Det skal være den med vector
15. december 2003 - 22:53
#26
øv den laver bare et tomt felt :(
15. december 2003 - 22:56
#27
Så kalder du bare filmList.setSelectedIndex(1); eller 2,3 WhatEver du vil
Kurser inden for grundlæggende programmering