Moin!
Boardsuche und Google hab ich verwendet, auch schon in einem anderen Forum gefragt, aber ich komm leider auf keine Lösung. Folgendes:
Ich hab in meinem Programm unabhängig voneinander 2 JLists in jeweils einer JScrollPane, die zur Anzeige von Objekten aus einer MSSQL Datenbank verwendet werden. Diese Objekte haben die toString()-Methode implementiert und ich füge sie einfach mit .add() ins entsprechende ListModel ein.
Das Problem an der ganzen Sache: Die JScrollPane ist entweder nicht lang genug (unten geht es noch weiter, man sieht den oberen Rand der nächsten Zeile):
Oder zwar da, weil die ScrollbarPolicy auf ALWAYS gesetzt ist, aber nicht zu bedienen:
Bei anderen Listen mit genau dem gleichen Vorgehen funktioniert es allerdings.
Der Code in der GUI:
Der Code in der DB:
Die Try/Catch-Blöcke hab ich zwecks Übersicht einmal weggelassen, die sind nicht das Problem. Exception wird nämlich keine geworfen. Mit JList.setListData() hab ich es auch schon probiert, geht nicht.
Hat irgendwer von euch eine Idee, was es da haben könnte?
tia
prayerslayer
Boardsuche und Google hab ich verwendet, auch schon in einem anderen Forum gefragt, aber ich komm leider auf keine Lösung. Folgendes:
Ich hab in meinem Programm unabhängig voneinander 2 JLists in jeweils einer JScrollPane, die zur Anzeige von Objekten aus einer MSSQL Datenbank verwendet werden. Diese Objekte haben die toString()-Methode implementiert und ich füge sie einfach mit .add() ins entsprechende ListModel ein.
Das Problem an der ganzen Sache: Die JScrollPane ist entweder nicht lang genug (unten geht es noch weiter, man sieht den oberen Rand der nächsten Zeile):
Oder zwar da, weil die ScrollbarPolicy auf ALWAYS gesetzt ist, aber nicht zu bedienen:
Bei anderen Listen mit genau dem gleichen Vorgehen funktioniert es allerdings.
Der Code in der GUI:
Code:
public class MainFrame extends javax.swing.Frame
{
private DefaultListModel dlmInfovs = new DefaultListModel();
public MainFrame ()
{
setComponents();
}
private void setComponents()
{
liInfoveranstaltungen.setModel(dlmInfovs);
refreshInfoveranstaltungen(); //try-catch hab ich jetzt weggelassen
}
private void refreshInfoveranstaltungen() throws ClassNotFoundException, SQLException, Exception
{
dlmInfovs.removeAllElements();
Vector<Infoveranstaltung> info = DBAccess.getInfoveranstaltungen();
Enumeration en = info.elements();
while (en.hasMoreElements())
{
Infoveranstaltung i = (Infoveranstaltung)en.nextElement();
dlmInfovs.addElement(i);
}
liInfoveranstaltungen.setModel(dlmInfovs);
}
}
Der Code in der DB:
Code:
public static Vector<Infoveranstaltung> getInfoveranstaltungen() throws ClassNotFoundException, SQLException
{
Vector<Infoveranstaltung ret = new Vector<Infoveranstaltung>();
Connection knexon = dbpool.getConnection();
String sql = "SELECT * FROM Infoveranstaltung ORDER BY ZeitVon DESC";
PreparedStatement stat = knexon.prepareStatement(sql);
ResultSet rs = stat.executeQuery();
while (rs.next())
{
ret.add(new Infoveranstaltung(rs.getInt("InfoveranstaltungID") /*usw*/);
}
rs.close();
stat.close();
dbpool.releaseConnection(knexon);
return ret;
}
Die Try/Catch-Blöcke hab ich zwecks Übersicht einmal weggelassen, die sind nicht das Problem. Exception wird nämlich keine geworfen. Mit JList.setListData() hab ich es auch schon probiert, geht nicht.
Hat irgendwer von euch eine Idee, was es da haben könnte?
tia
prayerslayer