Kannst du den Code mal komplett irgendwie hochladen ?
Klar, kann ich machen. weiß bloß nicht, ob Dir das hilft, denn die Datenbank dazu fehlt Dir ja…
Du hast schon Recht, .getSelectedObject() gibt tatsächlich auch immer null zurück.
Hier mal der Code aus meiner FrontEnd-Klasse:
import java.awt.Event;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
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.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.KeyStroke;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class FrontEnd extends JFrame {
/\*\*
\*
\*/
private static final long serialVersionUID = 1L;
private JComboBox[] jComboBox = new JComboBox[20];
private JLabel[] jLabel = new JLabel[20];
private int jFrageNummer = 1;
private int jAntwortNummer = 0;
private int jUserLevel = 0;
private JList jThemenListe = null;
Derby derby = new Derby();
DefaultListModel model = new DefaultListModel();
private JPanel jContentPane = null;
private JMenuBar jJMenuBar = null;
private JMenu fileMenu = null;
private JMenu editMenu = null;
private JMenu helpMenu = null;
private JMenuItem exitMenuItem = null;
private JMenuItem aboutMenuItem = null;
private JMenuItem cutMenuItem = null;
private JMenuItem copyMenuItem = null;
private JMenuItem pasteMenuItem = null;
private JMenuItem saveMenuItem = null;
private JRadioButton jRadioButtonGerman = null;
private JRadioButton jRadioButtonEnglish = null;
private JTextField jTextFieldUserName = null;
private JPasswordField jPasswordFieldPassword = null;
private JButton jButtonLogIn = null;
private JButton jButtonReset = null;
private JTextField jTextFieldSearch = null;
private JButton jButtonSearch = null;
private JButton jButtonBeenden = null;
private JTextPane jTextPaneSolutions = null;
private JLabel jLabelThemenStatus = null;
private JLabel jLabelAnzahlThemen = null;
private String jStringMainTitle;
private String jStringLoginButton;
private String jStringChoice;
private String jStringUserNameTextField;
private String jStringPasswordPasswordField;
private String jStringResetButton;
private String jStringGermanRadioButton;
private String jStringEnglishRadioButton;
private String jStringSearchTextField;
private String jStringSearchButton;
private String jStringThemenStatus;
private String jStringCloseButton;
/\*\*
\* This is the default constructor
\*/
public FrontEnd() {
super();
initialize();
}
/\*\*
\* This method initializes this
\*
\* @return void
\*/
public void initialize() {
this.setDefaultCloseOperation(JFrame.EXIT\_ON\_CLOSE);
this.setJMenuBar(getJJMenuBar());
this.setSize(1024, 768);
this.setResizable(false);
setVisible(true);
//this.setExtendedState(MAXIMIZED\_BOTH);
this.setContentPane(getJContentPane());
this.setTitle("Tuchenhagen Know-how Datenbank");
jRadioButtonEnglish.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (jRadioButtonEnglish.isSelected()) {
jRadioButtonGerman.setSelected(false);
} else {
jRadioButtonGerman.setSelected(true);
}
setLanguageEnglish();
}
});
jRadioButtonGerman.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (jRadioButtonGerman.isSelected()) {
jRadioButtonEnglish.setSelected(false);
} else {
jRadioButtonEnglish.setSelected(true);
}
setLanguageGerman();
}
});
jRadioButtonGerman.setSelected(true);
jStringChoice="\>";
}
/\*\*
\* This method initializes jContentPane
\*
\* @return javax.swing.JPanel
\*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jLabelAnzahlThemen = new JLabel();
jLabelAnzahlThemen.setBounds(new java.awt.Rectangle(160,665,60,25));
jLabelAnzahlThemen.setText("");
jLabelThemenStatus = new JLabel();
jLabelThemenStatus.setBounds(new java.awt.Rectangle(20,665,140,25));
jLabelThemenStatus.setText("Gefundene Einträge: ");
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.setBackground(java.awt.SystemColor.activeCaptionText);
jContentPane.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
jContentPane.add(getJRadioButtonDeutsch(), null);
jContentPane.add(getJRadioButtonEnglisch(), null);
jContentPane.add(getJTextFieldUserName(), null);
jContentPane.add(getJPasswordFieldPassword(), null);
jContentPane.add(getJButtonLogIn(), null);
jContentPane.add(getJButtonReset(), null);
jContentPane.add(getJTextFieldSearch(), null);
jContentPane.add(getJButtonSearch(), null);
jContentPane.add(getJTextPaneSolutions(), null);
jContentPane.add(jLabelThemenStatus, null);
jContentPane.add(jLabelAnzahlThemen, null);
jContentPane.add(getJButtonBeenden(), null);
jTextFieldUserName.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(MouseEvent e) {
jTextFieldUserName.setText("");
}
});
jPasswordFieldPassword
.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(MouseEvent e) {
jPasswordFieldPassword.setText("");
}
});
jButtonLogIn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
verifyUser();
}
});
}
return jContentPane;
}
/\*\*
\* This method initializes jJMenuBar
\*
\* @return javax.swing.JMenuBar
\*/
private JMenuBar getJJMenuBar() {
if (jJMenuBar == null) {
jJMenuBar = new JMenuBar();
jJMenuBar.setBackground(java.awt.SystemColor.inactiveCaptionText);
jJMenuBar.add(getFileMenu());
jJMenuBar.add(getEditMenu());
jJMenuBar.add(getHelpMenu());
}
return jJMenuBar;
}
/\*\*
\* This method initializes jMenu
\*
\* @return javax.swing.JMenu
\*/
private JMenu getFileMenu() {
if (fileMenu == null) {
fileMenu = new JMenu();
fileMenu.setText("Datei");
fileMenu.setBackground(java.awt.SystemColor.inactiveCaptionText);
fileMenu.add(getSaveMenuItem());
fileMenu.add(getExitMenuItem());
}
return fileMenu;
}
/\*\*
\* This method initializes jMenu
\*
\* @return javax.swing.JMenu
\*/
private JMenu getEditMenu() {
if (editMenu == null) {
editMenu = new JMenu();
editMenu.setText("Bearbeiten");
editMenu.setBackground(java.awt.SystemColor.inactiveCaptionText);
editMenu.add(getCutMenuItem());
editMenu.add(getCopyMenuItem());
editMenu.add(getPasteMenuItem());
}
return editMenu;
}
/\*\*
\* This method initializes jMenu
\*
\* @return javax.swing.JMenu
\*/
private JMenu getHelpMenu() {
if (helpMenu == null) {
helpMenu = new JMenu();
helpMenu.setText("Hilfe");
helpMenu.setBackground(java.awt.SystemColor.inactiveCaptionText);
helpMenu.add(getAboutMenuItem());
}
return helpMenu;
}
/\*\*
\* This method initializes jMenuItem
\*
\* @return javax.swing.JMenuItem
\*/
private JMenuItem getExitMenuItem() {
if (exitMenuItem == null) {
exitMenuItem = new JMenuItem();
exitMenuItem.setText("Beenden");
exitMenuItem.setBackground(java.awt.SystemColor.inactiveCaptionText);
exitMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
}
return exitMenuItem;
}
/\*\*
\* This method initializes jMenuItem
\*
\* @return javax.swing.JMenuItem
\*/
private JMenuItem getAboutMenuItem() {
if (aboutMenuItem == null) {
aboutMenuItem = new JMenuItem();
aboutMenuItem.setText("Über");
aboutMenuItem.setBackground(java.awt.SystemColor.inactiveCaptionText);
aboutMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new JDialog(FrontEnd.this, "Über", true).show();
}
});
}
return aboutMenuItem;
}
/\*\*
\* This method initializes jMenuItem
\*
\* @return javax.swing.JMenuItem
\*/
private JMenuItem getCutMenuItem() {
if (cutMenuItem == null) {
cutMenuItem = new JMenuItem();
cutMenuItem.setText("Ausschneiden");
cutMenuItem.setBackground(java.awt.SystemColor.inactiveCaptionText);
cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK\_X,
Event.CTRL\_MASK, true));
}
return cutMenuItem;
}
/\*\*
\* This method initializes jMenuItem
\*
\* @return javax.swing.JMenuItem
\*/
private JMenuItem getCopyMenuItem() {
if (copyMenuItem == null) {
copyMenuItem = new JMenuItem();
copyMenuItem.setText("Kopieren");
copyMenuItem.setBackground(java.awt.SystemColor.inactiveCaptionText);
copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK\_C,
Event.CTRL\_MASK, true));
}
return copyMenuItem;
}
/\*\*
\* This method initializes jMenuItem
\*
\* @return javax.swing.JMenuItem
\*/
private JMenuItem getPasteMenuItem() {
if (pasteMenuItem == null) {
pasteMenuItem = new JMenuItem();
pasteMenuItem.setText("Einfügen");
pasteMenuItem.setBackground(java.awt.SystemColor.inactiveCaptionText);
pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK\_V,
Event.CTRL\_MASK, true));
}
return pasteMenuItem;
}
/\*\*
\* This method initializes jMenuItem
\*
\* @return javax.swing.JMenuItem
\*/
private JMenuItem getSaveMenuItem() {
if (saveMenuItem == null) {
saveMenuItem = new JMenuItem();
saveMenuItem.setText("Speichern");
saveMenuItem.setBackground(java.awt.SystemColor.inactiveCaptionText);
saveMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK\_S,
Event.CTRL\_MASK, true));
}
return saveMenuItem;
}
public void setLanguageGerman() {
jStringMainTitle = "GEA Tuchenhagen Flow Components - Know-How Datenbank";
jStringChoice = "\>";
jStringLoginButton = "Einloggen";
jStringUserNameTextField = "Benutzer";
jStringPasswordPasswordField = "Passwort";
jStringResetButton = "Zurücksetzen";
jStringGermanRadioButton = "Deutsch";
jStringEnglishRadioButton = "Englisch";
jStringSearchTextField = "Begriff eingeben";
jStringSearchButton = "Suchen";
jStringThemenStatus = "Gefundene Einträge: ";
jStringCloseButton = "Beenden";
this.setTitle(jStringMainTitle);
jButtonLogIn.setText(jStringLoginButton);
jTextFieldUserName.setText(jStringUserNameTextField);
jPasswordFieldPassword.setText(jStringPasswordPasswordField);
jButtonReset.setText(jStringResetButton);
jRadioButtonGerman.setText(jStringGermanRadioButton);
jRadioButtonEnglish.setText(jStringEnglishRadioButton);
jTextFieldSearch.setText(jStringSearchTextField);
jButtonSearch.setText(jStringSearchButton);
jLabelThemenStatus.setText(jStringThemenStatus);
jButtonBeenden.setText(jStringCloseButton);
resetAll();
}
public void setLanguageEnglish() {
jStringMainTitle = "GEA Tuchenhagen Flow Components - Know-How Database";
jStringChoice = "\>";
jStringLoginButton = "Login";
jStringUserNameTextField = "User";
jStringPasswordPasswordField = "Password";
jStringResetButton = "Reset";
jStringGermanRadioButton = "German";
jStringEnglishRadioButton = "English";
jStringSearchTextField = "Insert search item";
jStringSearchButton = "Search";
jStringThemenStatus = "Found Entries: ";
jStringCloseButton = "Close";
this.setTitle(jStringMainTitle);
jButtonLogIn.setText(jStringLoginButton);
jTextFieldUserName.setText(jStringUserNameTextField);
jPasswordFieldPassword.setText(jStringPasswordPasswordField);
jButtonReset.setText(jStringResetButton);
jRadioButtonGerman.setText(jStringGermanRadioButton);
jRadioButtonEnglish.setText(jStringEnglishRadioButton);
jTextFieldSearch.setText(jStringSearchTextField);
jButtonSearch.setText(jStringSearchButton);
jLabelThemenStatus.setText(jStringThemenStatus);
jButtonBeenden.setText(jStringCloseButton);
resetAll();
}
/\*\*
\* This method initializes jRadioButtonDeutsch
\*
\* @return javax.swing.JRadioButton
\*/
private JRadioButton getJRadioButtonDeutsch() {
if (jRadioButtonGerman == null) {
jRadioButtonGerman = new JRadioButton();
jRadioButtonGerman.setBounds(new java.awt.Rectangle(880,20,120,25));
jRadioButtonGerman.setText("Deutsch");
jRadioButtonGerman.setBackground(java.awt.SystemColor.white);
}
return jRadioButtonGerman;
}
/\*\*
\* This method initializes jRadioButtonEnglisch
\*
\* @return javax.swing.JRadioButton
\*/
private JRadioButton getJRadioButtonEnglisch() {
if (jRadioButtonEnglish == null) {
jRadioButtonEnglish = new JRadioButton();
jRadioButtonEnglish.setBounds(new java.awt.Rectangle(880,40,120,25));
jRadioButtonEnglish.setText("English");
jRadioButtonEnglish.setBackground(java.awt.SystemColor.white);
}
return jRadioButtonEnglish;
}
/\*\*
\* This method initializes jTextFieldUserName
\*
\* @return javax.swing.JTextField
\*/
private JTextField getJTextFieldUserName() {
if (jTextFieldUserName == null) {
jTextFieldUserName = new JTextField();
jTextFieldUserName.setBounds(new java.awt.Rectangle(880,90,120,25));
jTextFieldUserName.setText("Benutzer");
}
return jTextFieldUserName;
}
/\*\*
\* This method initializes jPasswordFieldPassword
\*
\* @return javax.swing.JPasswordField
\*/
private JPasswordField getJPasswordFieldPassword() {
if (jPasswordFieldPassword == null) {
jPasswordFieldPassword = new JPasswordField();
jPasswordFieldPassword.setBounds(new java.awt.Rectangle(880,120,120,25));
jPasswordFieldPassword.setText("Passwort");
}
return jPasswordFieldPassword;
}
/\*\*
\* This method initializes jButtonLogIn
\*
\* @return javax.swing.JButton
\*/
private JButton getJButtonLogIn() {
if (jButtonLogIn == null) {
jButtonLogIn = new JButton();
jButtonLogIn.setBounds(new java.awt.Rectangle(880,150,120,25));
jButtonLogIn.setText("Login");
jButtonLogIn.setBackground(java.awt.SystemColor.white);
}
return jButtonLogIn;
}
/\*\*
\* This method initializes jButtonReset
\*
\* @return javax.swing.JButton
\*/
private JButton getJButtonReset() {
if (jButtonReset == null) {
jButtonReset = new JButton();
jButtonReset.setBounds(new java.awt.Rectangle(880,200,120,25));
jButtonReset.setText("Zurücksetzen");
jButtonReset.setBackground(java.awt.SystemColor.white);
jButtonReset.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
resetAll();
}
});
}
return jButtonReset;
}
private void resetAll(){
jContentPane.validate();
jContentPane.repaint();
jFrageNummer = 1;
jAntwortNummer = 0;
model.clear();
jContentPane.removeAll();
jContentPane.add(getJRadioButtonDeutsch(), null);
jContentPane.add(getJRadioButtonEnglisch(), null);
jContentPane.add(getJTextFieldUserName(), null);
jContentPane.add(getJPasswordFieldPassword(), null);
jContentPane.add(getJButtonLogIn(), null);
jContentPane.add(getJButtonReset(), null);
jContentPane.add(getJTextFieldSearch(), null);
jContentPane.add(getJButtonSearch(), null);
jContentPane.add(getJButtonBeenden(), null);
jContentPane.add(jLabelThemenStatus, null);
jContentPane.add(jLabelAnzahlThemen, null);
katalogAnzeigen();
}
/\*\*
\* This method initializes jTextFieldSearch
\*
\* @return javax.swing.JTextField
\*/
private JTextField getJTextFieldSearch() {
if (jTextFieldSearch == null) {
jTextFieldSearch = new JTextField();
jTextFieldSearch.setBounds(new java.awt.Rectangle(880,250,120,25));
}
return jTextFieldSearch;
}
/\*\*
\* This method initializes jButtonSearch
\*
\* @return javax.swing.JButton
\*/
private JButton getJButtonSearch() {
if (jButtonSearch == null) {
jButtonSearch = new JButton();
jButtonSearch.setBounds(new java.awt.Rectangle(880,280,120,25));
jButtonSearch.setText("Suchen");
jButtonSearch.setBackground(java.awt.SystemColor.white);
}
return jButtonSearch;
}
/\*\*
\* This method initializes jButtonBeenden
\*
\* @return javax.swing.JButton
\*/
private JButton getJButtonBeenden() {
if (jButtonBeenden == null) {
jButtonBeenden = new JButton();
jButtonBeenden.setBounds(new java.awt.Rectangle(880,330,120,25));
jButtonBeenden.setText("Beenden");
jButtonBeenden.setBackground(java.awt.SystemColor.white);
}
return jButtonBeenden;
}
public void verifyUser() {
Derby derby = new Derby();
derby.connect();
derby.verifyUserPassword(jTextFieldUserName.getText(), new String(
jPasswordFieldPassword.getPassword()));
System.out.println("Userstatus: " + derby.PasswordUsername);
System.out.println("Userlevel: " + derby.UserLevel);
if ((derby.PasswordUsername) & (derby.UserLevel == 2)) {
} else {
}
derby.disconnect();
}
/\*\*
\* This method initializes jTextPaneSolutions
\*
\* @return javax.swing.JTextPane
\*/
private JTextPane getJTextPaneSolutions() {
if (jTextPaneSolutions == null) {
jTextPaneSolutions = new JTextPane();
jTextPaneSolutions.setBounds(new java.awt.Rectangle((1024-3\*20)/2+34,530,(1024-3\*20)/2,140));
jTextPaneSolutions.setEditable(false);
}
return jTextPaneSolutions;
}
public void katalogAnzeigen(){
jThemenListe = new JList(model);
jThemenListe.setBackground(java.awt.SystemColor.info);
JScrollPane jScrollingList = new JScrollPane(jThemenListe);
jScrollingList.setBounds(new java.awt.Rectangle(20,530,(1024-3\*20)/2,140));
jScrollingList.setBackground(java.awt.SystemColor.info);
model.clear();
jContentPane.add(jScrollingList);
jContentPane.validate();
jContentPane.repaint();
jComboBox[jFrageNummer] = new JComboBox();
jComboBox[jFrageNummer].setBounds(new java.awt.Rectangle(400,
20 + (jFrageNummer - 1) \* 28, 400, 25));
jComboBox[jFrageNummer].setBackground(java.awt.SystemColor.white);
jContentPane.add(jComboBox[jFrageNummer]);
jLabel[jFrageNummer] = new JLabel();
jLabel[jFrageNummer].setBounds(new java.awt.Rectangle(20,
20 + (jFrageNummer - 1) \* 28, 360, 25));
jLabel[jFrageNummer].setBackground(java.awt.SystemColor.white);
jContentPane.add(jLabel[jFrageNummer]);
derby.connect();
derby.showQuestion(jUserLevel, jFrageNummer, jAntwortNummer);
if (jRadioButtonGerman.isSelected()) {
jLabel[jFrageNummer].setText(((Data) derby.listeF.get(0))
.getDeutsch());
} else {
jLabel[jFrageNummer].setText(((Data) derby.listeF.get(0))
.getEnglisch());
}
jComboBox[jFrageNummer].addItem(jStringChoice);
if (jRadioButtonGerman.isSelected()) {
for (int i=0; i
Ich frage Daten (Fragen, Antworten, Themen (um die geht es in der JList), Lösungen, .. aus der DB (Apache Derby) ab und lasse sie in JComboBoxen und JLists anzeigen.
Aus dieser JList soll der Anwender nun ein Thema auswählen können, um sich die Lösung dazu anzuschauen.
Das meiste (relevante) passiert wohl in der Methode katalogAnzeigen().
Also die Daten in der Liste stimmen schon. Und wenn setSelectedIndex geht, dann sind ja scheinbar auch die Elemente drin, oder?
Ich stehe voll auf dem Schlauch :wink: