Keine Ausgabe von JList bei drücken von Button auf die Konsole

ElDonRon

Mitglied
Hallo,

hab mir gerade ein Beispiel aus "Handbuch der Java Programmierung raus gesucht" um ein wenig mit JList herum zu experimentieren.

Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.sap.mw.jco.*;

public class ViewerJList
extends JFrame
implements Constants, ActionListener
{
  //JTextArea resultField = new JTextArea();
  String[] resultTableColumn = {"Project Nummer", "Project Definition", "Description"};
  String[][] resultTableRow = new String[1000][3];
  JTable resultTable = new JTable(resultTableRow, resultTableColumn);
  JScrollPane resultTableScrollpane = new JScrollPane(resultTable, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
  
  //Daten fuer die Liste in JList
  static final String[] DATA = {
    "PROJECT_DEFINITION", "DESCRIPTION", "MASK_ID", "RESPONSIBLE_NO", "APPLICANT_NO", "COMP_CODE", "BUS_AREA", "CONTROLLING_AREA", "PROFIT_CTR", "PROJECT_CURRENCY", "PROJECT_CURRENCY_ISO", "NETWORK_ASSIGNMENT", "START",
    "FINISH", "PLANT", "CALENDAR", "PLAN_BASIC", "PLAN_FCST", "TIME_UNIT", "TIME_UNIT_ISO", "NETWORK_PROFILE", "PROJECT_PROFILE", "PROJECT_STOCK", "OBJECTCLASS", "STATISTICAL", "TAXJURCODE", "PS_ZSCHM", "PS_SCHDPRF", "PSFM_PRF",
    "BP_PPROFIL"
  };
  
  JList liste;

  public ViewerJList(String name)
  {
    super(name);
    
    buildGui();    
    buildMenuBar();
  }
  
  
  public String buildGui()
  {
    JTextField usernameTextField, maxrowsTextField;
    JPasswordField passwordField;
    JList liste;
    JButton connectButton, getListButton, selectButton;
    JLabel usernameLabel, passwordLabel, statusLabel, indicatorLabel, maxrowsLabel;

    getContentPane().setLayout(null);

    //The username label
    usernameLabel = new JLabel("Username");
    usernameLabel.setLocation(12,12);
    usernameLabel.setSize(80,20);
    getContentPane().add(usernameLabel);
    
    //The password label
    usernameLabel = new JLabel("Password");
    usernameLabel.setLocation(12,40);
    usernameLabel.setSize(80,20);
    getContentPane().add(usernameLabel);
    
    //The status label
    statusLabel = new JLabel("Status");
    statusLabel.setLocation(12,68);
    statusLabel.setSize(80,20);
    getContentPane().add(statusLabel);
    
    //The indicator label
    indicatorLabel = new JLabel("Disconnected");
    indicatorLabel.setLocation(120,68);
    indicatorLabel.setSize(80,20);
    indicatorLabel.setForeground(Color.red);
    getContentPane().add(indicatorLabel);
    
    //The username field
    usernameTextField = new JTextField();
    usernameTextField.setLocation(120,12);
    usernameTextField.setSize(100,20);
    getContentPane().add(usernameTextField);
    
    //The password field
    passwordField = new JPasswordField();
    passwordField.setLocation(120,40);
    passwordField.setSize(100,20);
    getContentPane().add(passwordField);
    
    //The result table
    resultTableScrollpane.setLocation(282,12);
    resultTableScrollpane.setSize(600,430);
    getContentPane().add(resultTableScrollpane);

    //The connect button
    connectButton = new JButton("Connect");
    connectButton.setMnemonic('C');
    connectButton.setLocation(12, 96);
    connectButton.setSize(100,30);
    getContentPane().add(connectButton);
    
    //The getList button
    getListButton = new JButton("getList");
    getListButton.setMnemonic('G');
    getListButton.setLocation(12, 230);
    getListButton.setSize(100,30);
    getContentPane().add(getListButton);

    //JList
    liste = new JList(DATA);
    liste.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    liste.setLocation(12, 280);
    liste.setSize(200,70);
    JScrollPane listeScrollPane = new JScrollPane(liste, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
    getContentPane().add(liste);
	

    //Select Button in JList
    selectButton = new JButton("Select");
    selectButton.addActionListener(this);
    selectButton.setLocation(12, 350);
    selectButton.setSize(100,30);
    getContentPane().add(selectButton);

    
    //The maxrows label
    maxrowsLabel = new JLabel("MAXROWS");
    maxrowsLabel.setLocation(12,200);
    maxrowsLabel.setSize(80,20);
    //maxrowsLabel.setForeground(Color.red);
    getContentPane().add(maxrowsLabel);
    
    //The maxrows field
    maxrowsTextField = new JTextField("20");
    maxrowsTextField.setLocation(100,200);
    maxrowsTextField.setSize(100,20);
    getContentPane().add(maxrowsTextField);
    return maxrowsTextField.getText();
  }
  
  
  
  public void buildMenuBar()
  {
    // Create menubar and menues
    JMenuBar menueBar = new JMenuBar();
    setJMenuBar(menueBar);
    JMenu fileMenu = new JMenu("File");
    JMenu sapMenu = new JMenu("SAP");
    JMenu helpMenu = new JMenu("Help");
    menueBar.add(fileMenu);
    menueBar.add(sapMenu);
    menueBar.add(helpMenu); 
    
    // Add actions to Menu
    JMenuItem connectAction = new JMenuItem("Connect");
    JMenuItem disconnectAction = new JMenuItem("Disconnect");
    JMenuItem exitAction = new JMenuItem("Exit");
    JMenuItem versionAction = new JMenuItem("Version");

    // Create shortcuts Alt+Key
    connectAction.setMnemonic('C');
    connectAction.setAccelerator(KeyStroke.getKeyStroke('C', InputEvent.ALT_DOWN_MASK));
    disconnectAction.setMnemonic('D');
    disconnectAction.setAccelerator(KeyStroke.getKeyStroke('D', InputEvent.ALT_DOWN_MASK));
    exitAction.setMnemonic('E');
    exitAction.setAccelerator(KeyStroke.getKeyStroke('E', InputEvent.ALT_DOWN_MASK));

    // Build menu
    fileMenu.add(exitAction);
    sapMenu.add(connectAction);
    sapMenu.addSeparator();
    sapMenu.add(disconnectAction);
    helpMenu.add(versionAction);
  }
  
  public void actionPerformed(ActionEvent Event)
  {
  	String cmd = Event.getActionCommand();
  	if (cmd.equals("Ausgabe")) {
  		System.out.println("-");
  		ListModel lm = liste.getModel();
  		int[] sel = liste.getSelectedIndices();
  		for (int i = 0; i < sel.length; i++) {
  			String value = (String)lm.getElementAt(sel[i]);
  			System.out.println(" " + value);
  		}
  	}
  }
}

Problem ist, dass ich beim drücken keine Ausgabe der selektierten Optionen aus JList auf die Konsole erhalte.

Ich hoffe man kann mir weiter helfen. Danke schon einmal vorab!
 

Michael...

Top Contributor
Wie wär's mal zu Anfang mit ein bisschen weniger Code? ;-)
Ein JButton und eine JList sollten ausreichen, um diesen Umgang mit einer JList zu experimentieren.

Dein Problem ist, dass du zwei Variablen
Code:
liste
hast. Und im ActionListener auf die Variable zugreifst, die nicht initialisiert ist. Die lokale Variable im Konstruktor ist überflüssig.
Fliegt da keine Exception?
 

ElDonRon

Mitglied
Naja, ich will direkt etwas damit ausprobieren, von daher hab ich es in den Code mit eingebaut ;)

Zeile 38 war gemeint oder?

Hab ich raus genommen, leider ohne Effekt.
Exception schmeisst er ebenfalls keine.

Edit:

Nur damit klar ist, was ich vorhabe. Ich will JList eigentlich als Filter benutzen. D.H. die Werte, welche ich bei JList auswähle, sollen am Ende in der Tabelle, als Spalten angezeigt werden. Hierfür sollen die anderen Spalten auf Spaltengröße 0 gesetzt werden.

Aber vielleicht, gibt es ja auch einen anderen besseren Weg :)
 
Zuletzt bearbeitet:

bERt0r

Top Contributor
Wieso kommen in letzter Zeit so viele daher die meinen das NullLayout benutzen zu müssen? Wer bringt euch diesen Blödsinn bitte bei???
Warum dein ActionListener nicht funktioniert: Du prüfst auf actionCommand="Ausgabe". Dein "selectButton" hat aber den Text "Select" und da du nirgends den ActionCommand anders gesetzt hast ist der auch "Select".
 

GUI-Programmer

Top Contributor
Und wenn du schon unbedingt das NullLayout verwenden willst kannst du Positionieren und Größe Bestimmen auch in einem Schritt machen.
Nämlich anstatt von
Java:
usernameLabel.setLocation(12,40);
usernameLabel.setSize(80,20);
kannst du
Java:
usernameLabel.setBounds(12, 40, 80, 20);
schreiben.

Mein Tipp: Benutz FormLayout von JGoodies (MigLayout is auch OK, find ich aber etwas umständlicher)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Swing Warum erhalte ich keine Ausgabe? Funktioniert der equals-vergleich in actionPeformed nicht richtig? AWT, Swing, JavaFX & SWT 3
E Keine Ausgabe auf Console und List AWT, Swing, JavaFX & SWT 13
D Fenster will keine Ausgabe geben>:( AWT, Swing, JavaFX & SWT 3
ExceptionOfExpectation JMenu, setMnemonic(Char k) bringt keine Wirkung AWT, Swing, JavaFX & SWT 8
V JavaFX Bild leer und keine Fehlermeldung AWT, Swing, JavaFX & SWT 21
S JavaFX WebView zeigt keine Animation AWT, Swing, JavaFX & SWT 5
ruutaiokwu SWT "Google Window Builder" tut keine jar's ins Projekt rein bei SWT-Projekt AWT, Swing, JavaFX & SWT 22
H String teilen, damit bei JLabel keine Punkte am Ende angezeigt werden AWT, Swing, JavaFX & SWT 4
L Java FX Keine Anzeige Im Tableview AWT, Swing, JavaFX & SWT 4
richis-fragen JTree +/- verschwidet wenn Knoten keine Kinder hat... AWT, Swing, JavaFX & SWT 6
S java.fxml.load.exception und keine automatische Aktualliseriung der Mainausgabe AWT, Swing, JavaFX & SWT 5
F JList zeigt keine Einträge mehr AWT, Swing, JavaFX & SWT 1
G Swing JButton - Keine Klickanimation AWT, Swing, JavaFX & SWT 4
G JavaFX - Während AudioRecording keine Text eingabe TextField möglich AWT, Swing, JavaFX & SWT 6
N Swing JFormattedTextField keine Werte nach Formatzuweisung AWT, Swing, JavaFX & SWT 0
C Swing JList zeigt keine neuen Einträge an AWT, Swing, JavaFX & SWT 1
X Swing Anwendung regaiert auf keine Buttons mehr wärend while(scanner.hasNextLine()) ausgeführt wird. AWT, Swing, JavaFX & SWT 4
D Swing keine JLabel-Aktualisierung bei "externem" Aufruf durch Helferklasse AWT, Swing, JavaFX & SWT 10
K Swing Keine Reaktion auf Tastatureingaben bei mehreren Buttons??? AWT, Swing, JavaFX & SWT 4
gamebreiti auf usereingabe warten mit GUI(nur Labels, Buttons etc. keine Texteingaben) AWT, Swing, JavaFX & SWT 3
P Swing JTable keine Markierung nach Button klick AWT, Swing, JavaFX & SWT 0
U Frame zeigt keine Komponenten AWT, Swing, JavaFX & SWT 7
H RCP(SWT) Browser-Widget zeigt keine locale HTML-Dateien an AWT, Swing, JavaFX & SWT 1
N JavaFX Keine Dynamic AWT, Swing, JavaFX & SWT 2
W Swing Ausführung einer .jar zeigt keine Reaktion AWT, Swing, JavaFX & SWT 4
D Swing JList keine Selektionsänderung bei "dragged-Maus" AWT, Swing, JavaFX & SWT 4
N Swing JTable mit Sorter: Keine Sortierung bei Klick in Header AWT, Swing, JavaFX & SWT 3
Ollek JList - neuer Eintrag in ArrayList dadurch keine Anzeige der Objekte AWT, Swing, JavaFX & SWT 18
A trotz setSize keine breite AWT, Swing, JavaFX & SWT 4
Q JTable - Keine Spaltennamen AWT, Swing, JavaFX & SWT 3
H Swing Keine Rückmeldung (freeze) bei setVisible(false) oder dispose() AWT, Swing, JavaFX & SWT 4
B JEditorPane lädt keine Schriftfarbe in HTML AWT, Swing, JavaFX & SWT 2
dzim TableView - keine Aktualisierung geänderter Items AWT, Swing, JavaFX & SWT 5
Kenan89 statischer ActionListener keine Wirkung? AWT, Swing, JavaFX & SWT 2
Kenan89 statischer ActionListener keine Wirkung? AWT, Swing, JavaFX & SWT 3
N Swing Netbeans 7.1 keine DesktopApplication mehr möglich ? AWT, Swing, JavaFX & SWT 15
H JTable zeigt keine Daten an AWT, Swing, JavaFX & SWT 5
C Swing JFrame nimmt keine anderen Elemente auf AWT, Swing, JavaFX & SWT 13
K Applet Wieso kann ich keine Array im Applet initialisieren AWT, Swing, JavaFX & SWT 13
A Swing JTable benutzt keine Checkbox für Booleans AWT, Swing, JavaFX & SWT 9
M Swing Focus für Buttons deaktiviert --> keine Reaktion mehr auf Tastendrücke AWT, Swing, JavaFX & SWT 5
C MouseMotionListener fired keine Events mehr wenn in Button AWT, Swing, JavaFX & SWT 2
K Applet erkennt keine Frameverkleinerung AWT, Swing, JavaFX & SWT 5
O keine ähnliche Farben durch Random in Java AWT, Swing, JavaFX & SWT 21
N JFileChooser - Keine Funtkion AWT, Swing, JavaFX & SWT 13
P Kennt awt.list keine Tastatureingabe? AWT, Swing, JavaFX & SWT 3
Y LayoutManager Keine vollständige Darstellung der Tabelle mit GridBagLayout AWT, Swing, JavaFX & SWT 3
H Swing JScrollPane bekommt keine ScrollBars AWT, Swing, JavaFX & SWT 5
bluerob Nach RowSorter -> Keine Tabellenüberschreibung möglich AWT, Swing, JavaFX & SWT 7
V JTextField nimmt keine Eingaben an, nach nachträglichem setVisible des JWindows AWT, Swing, JavaFX & SWT 4
aze JTextField:Keine Markierung AWT, Swing, JavaFX & SWT 6
D Swing keine Tabellen Zeilen ohne Focus AWT, Swing, JavaFX & SWT 7
J Swing JTable, eigener TableCellRenderer Keine Anzeige in den Zellen AWT, Swing, JavaFX & SWT 8
C keine weiteren Events während Drag&Drop Operation möglich? AWT, Swing, JavaFX & SWT 5
Fu3L Keine Transparenten JTextComponents möglich mit Nimbus L&F? AWT, Swing, JavaFX & SWT 5
P 2D-Grafik PaintComponent() übernimmt keine Werte aus update() AWT, Swing, JavaFX & SWT 8
earlgrey_tea AWT KeyListener bekommt keine Signale AWT, Swing, JavaFX & SWT 3
B LayoutManager mischen keine gute Idee? AWT, Swing, JavaFX & SWT 9
O Swing es können keine neuen Labels hinzufügt werden während der Timer läuft AWT, Swing, JavaFX & SWT 14
B JScrollbarPane zeigt keine scrollbars AWT, Swing, JavaFX & SWT 2
I Panel scheint keine Größe zu haben AWT, Swing, JavaFX & SWT 3
aze GridLayout: Keine automatische Ausdehnung AWT, Swing, JavaFX & SWT 2
1 JFrame bleibt leer, keine Ahnung warum AWT, Swing, JavaFX & SWT 7
M SWT keine Scrollbar bei widgets.List und GridLayout AWT, Swing, JavaFX & SWT 2
P SWT Tree - Keine Selection zulassen AWT, Swing, JavaFX & SWT 4
T SWT Keine Anzeige der Widgets nach Comboauswahl AWT, Swing, JavaFX & SWT 2
1 GeneralPath-Kreise werden keine Kreise AWT, Swing, JavaFX & SWT 2
hdi Swing setPreferredSize zeigt keine Änderung AWT, Swing, JavaFX & SWT 2
R AWT [Anfänger] keine atives Aussehen von Buttons AWT, Swing, JavaFX & SWT 4
S Seltsames Problem - manchmal enthaelt die ActionMap eine JTextArea keine Actions. AWT, Swing, JavaFX & SWT 4
A SWT Table hat keine Scrollbar AWT, Swing, JavaFX & SWT 12
B Keine Änderungen an JLabel durch Array möglich AWT, Swing, JavaFX & SWT 12
C Frame repaint hat keine Wirkung AWT, Swing, JavaFX & SWT 6
L Swing JPanel sendet keine KeyEvents AWT, Swing, JavaFX & SWT 22
J Swing - ich sehe keine Linie, andere schon AWT, Swing, JavaFX & SWT 6
S JDialog gibt keine Nachrichten ueber sein Schliessen..? AWT, Swing, JavaFX & SWT 3
C JTextArea zeigt keine Scrollbalken AWT, Swing, JavaFX & SWT 18
B Heavyweight Popup lässt keine MouseEvents durch AWT, Swing, JavaFX & SWT 2
K JDialog zeigt keine Komponenten wenn es modal ist AWT, Swing, JavaFX & SWT 2
S Seltsam: SWT Table zeigt keine Scrollbar an AWT, Swing, JavaFX & SWT 12
V JTabbedPane - keine "Focus"-Box auf selektiertem T AWT, Swing, JavaFX & SWT 2
G JTable zeigt keine Spaltenheader AWT, Swing, JavaFX & SWT 7
L JDialog-kann keine Größe setzen AWT, Swing, JavaFX & SWT 4
F Thread macht keine Pause AWT, Swing, JavaFX & SWT 22
W Threads und trotzdem keine Nebenläufigkeit AWT, Swing, JavaFX & SWT 13
G Keine Anzeige des Balkens AWT, Swing, JavaFX & SWT 3
F JScrollPane mit JPanel drinne zeigt keine Scroll-Leisten AWT, Swing, JavaFX & SWT 7
K keine Zeichenfläche sichtbar AWT, Swing, JavaFX & SWT 2
J ActionListener nimmt keine for()-Schleife? AWT, Swing, JavaFX & SWT 4
M JDialog + JFrame + keine Java Tasse AWT, Swing, JavaFX & SWT 9
G keine ScaledInstance von BufferedImage? AWT, Swing, JavaFX & SWT 6
Z habe code, habe fehler, habe keine lösung AWT, Swing, JavaFX & SWT 7
C Jar Datei ist ausführbar aber zeigt keine icon's an AWT, Swing, JavaFX & SWT 18
S JList gibt nach Sortierung mit Collections keine Anzahl mehr AWT, Swing, JavaFX & SWT 3
N Trotz richtiger ListSelectionMode kann ich keine Zeile sel? AWT, Swing, JavaFX & SWT 4
technolion FileDialog/keine Multi-Selektion vs. JFileCHooser/kein LaF AWT, Swing, JavaFX & SWT 2
S getSize gibt keine Größe wieder AWT, Swing, JavaFX & SWT 4
K Keine SWT-Komponenten-Gruppe in Palette des Visual Editor AWT, Swing, JavaFX & SWT 2
M Keine Buttons oder sonstige Objekte in JFrame unter Linux AWT, Swing, JavaFX & SWT 4
W Vom JPanel bekomme ich keine Events AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben