G
Guest
Gast
Kann mir jemand weiterhelfen wie ich in einer JList 2 Spalten darstelle?
wenn ich nur den namen in einer jlist darstellen will funktionierts problemlos, wenn ich aber vorname und nachname in je ein label schreibe und beide anschließend in eine pane stecke funktionierts nicht.
weiß jemant was ich ändern muss dass es funkt?
Code:
public class jdbcTest {
static String url = "jdbc:odbc:schule2000";
private static DefaultListModel model;
private static JPanel panel;
private static JPanel panel2;
private static JPanel mainpanel;
private static JList list;
private static JLabel name;
private static JLabel vorname;
public static void main (String args[])
{
JFrame frame = new JFrame("JList Übung");
JPanel panel = new JPanel();
model = new DefaultListModel();
panel = new JPanel();
panel.setLayout(new GridLayout(4,1));
panel2 = new JPanel();
panel2.setLayout(new GridLayout(4,1));
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection(url);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT S_Name, S_Vorname, K_ID FROM schueler, klassen WHERE S_SCHNR = K_S_Klaspr");
while(rs.next())
{
String schuelerName = rs.getString("S_Name");
String schuelerVorname = rs.getString("S_Vorname");
String klassenBez = rs.getString("K_ID");
System.out.println(schuelerName + "\t" + "\t"+ schuelerVorname + "\t" + "\t" + klassenBez);
name = new JLabel(schuelerName);
vorname = new JLabel(schuelerVorname);
panel.add(name);
panel.add(vorname);
panel2.add(panel);
model.addElement(panel2);
}
}
catch(ClassNotFoundException cnfex)
{
System.out.println("Failed to load JDBC/ODBC driver." );
}
catch ( SQLException sqlex )
{
System.out.println("Unable to connect" );
}
list = new JList(model);
list.setCellRenderer(new MeinCellRenderer());
frame.setContentPane(list);
frame.pack();
frame.show();
}
}
//Cell Renderer Klasse
public class MeinCellRenderer extends JLabel implements ListCellRenderer
{
public MeinCellRenderer()
{
setOpaque(true);
}
/* (non-Javadoc)
* @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean)
*/
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
{
return new JLabel(value.toString());
}
}
wenn ich nur den namen in einer jlist darstellen will funktionierts problemlos, wenn ich aber vorname und nachname in je ein label schreibe und beide anschließend in eine pane stecke funktionierts nicht.
weiß jemant was ich ändern muss dass es funkt?