MainFrame durch Actionlistener auffrischen, aber wie?

pkm

Bekanntes Mitglied
Ich habe eine GUI gebaut, welche mir den Wetterbericht für Karlsruhe liefert. Nun ist es so, dass ich das auf mehrere Städte erweitern will, sodass ich eine ComboBox habe, wenn ich da statt dem Defaultwert Karlsruhe Stuttgart wähle, dann passiert nichts, da im ActionListener kein Code ist. Ich habe alles mögliche schon versucht, es ist mir aber nicht gelungen, nach einer Änderung der ausgewählten Stadt den richtigen Wetterbericht mir anzeigen zu lassen, d. h. irgendwie ein "refresh" hinzbekommen.

Daher meine Frage - kann mir eventuell jemand freundlichen Weise einen Tipp geben, wo ich bei einer solchen Sachlage den Hebel ansetzen soll?

Java:
package webserive.client;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;
import java.util.TreeMap;
import java.util.TreeSet;
import javax.swing.ImageIcon;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;
import org.json.JSONObject;
import org.json.XML;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;

public class Main {
    
       private static JFrame mainFrame;
    
       private static JComboBox<String> orte;
      
       private static JPanel controlPanel;
      
       private static int dateChanges = -1;
      
    /**
     * Extrahiere die Daten und uebergib diese der GUI-Bau-Methode.   
     * @param args
     */
    public static void main(String[] args) {
 
        try {
            
          String output = getOutput();
            
            TreeMap<String, String[]> forecasts = new TreeMap<>();
            String forecast = ""; String dateOfForecast = "";
            String[] lists = output.split("<list>");
          
           String datum = ""; TreeSet<String> differentDates = new TreeSet<>();
            
            for(int i = 1; i<lists.length;i++) {
                forecast = lists[i].replace("</list>", "");

                dateOfForecast = getInformationFor("DATEOF", forecast);
                
                String[] infos = { getInformationFor("DESCRIPTIONOF", forecast),
                                   getInformationFor("TEMPOF", forecast),
                                   getInformationFor("HUMIDITYOF", forecast),
                                   getInformationFor("PRESSUREOF", forecast),
                                   getInformationFor("WINDSPEEDOF", forecast)
                
                };

                if(!datum.equals(dateOfForecast.substring(0, 10))) {
                    datum = dateOfForecast.substring(0, 10);
                    differentDates.add(datum);
                    dateChanges++;
                }
                
                forecasts.put(dateOfForecast, infos);
            
            }
                
            createWindow(forecasts, dateChanges, differentDates);   
            
                orte.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
                          
                        }
                      });
                    
                
          } catch (Exception e) {

            e.printStackTrace();

          }
        
    }

    /**
     *
     * @return Der Output.
     * @throws IOException
     */
    private static String getOutput() throws IOException {
          
         orte =  new JComboBox<>();
          
            String[] description = { "Karlsruhe", "Stuttgart" };
          
            for (int i = 0; i < description.length; i++) {
                
                orte.addItem(description[i]);
            
            }
            
    
        
          String output = ""; //Files.readString(Paths.get("C:\\Users\\*********\\Documents\\weatherdata.xml"));

        output = XML.toString(readService(orte.getSelectedItem().toString()));
        
        return output;
    }

/**
 * Hier wird die GUI gebaut.
 * @param forecasts
 * @param dateChanges
 * @param differentDates
 */
    private static void createWindow(TreeMap<String, String[]> forecasts, int dateChanges, TreeSet<String> differentDates) {

          mainFrame = new JFrame("Wetterbericht");
          mainFrame.setSize(750,500);
          mainFrame.setLayout(new GridLayout(3, 1));
  
          JLabel headerLabel = new JLabel();
          
          controlPanel = new JPanel();
          
          controlPanel.setLayout(new FlowLayout());
          
          JPanel pan = new JPanel();
              pan.setLayout(new FlowLayout(FlowLayout.LEFT));
          
              pan.add(headerLabel); pan.add(orte);     
              
              mainFrame.add(pan);
          
          AuxMethods auxMethods = new AuxMethods();
          
          headerLabel.setText(auxMethods.getCurrentDate());
          headerLabel.setBorder(new EmptyBorder(0, 10, 0, 0));

          String[] columnNames = {"Voraussage für", "Beschreibung", "Temperatur", "Luftfeuchtigkeit", "Luftdruck", "Wind"};
          
          Object[][] data = new Object[dateChanges+forecasts.size()][6];
          int i = 0; int c = 0;
          for(String d : forecasts.keySet()) {
              String[] sa = new String[] { d,
                      forecasts.get(d)[0],
                      forecasts.get(d)[1],
                      forecasts.get(d)[2],
                      forecasts.get(d)[3],
                      forecasts.get(d)[4] };
              
              data[i] = sa;
              
              if(!d.substring(0, 10).equals(differentDates.toArray()[c])) {
                
                  data[i] = new String[] {"","","","","",""};
                   i++;
                  data[i] = sa;
                  
                  c++;
                  
              } else  {
                  
              }
              
              i++;
          }
          
        JTable table = new JTable(data, columnNames);
        JScrollPane scrollPane = new JScrollPane(table);
      
        mainFrame.add(scrollPane);
        ImageIcon icon = new ImageIcon("pix/icon.png");
        mainFrame.setIconImage(icon.getImage());
        mainFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        mainFrame.setVisible(true);   
          
     }
    
 

    /**
     * Hier werden die Informationen als String aus der XML herausgezogen.
     * @param INeed
     * @param forecast
     * @return Jeweilige Infos, die dann in die GUI kommen.
     */
    private static String getInformationFor(String INeed, String forecast) {

        AuxMethods auxMethods = new AuxMethods();
        
        String res = "";
        
        switch(INeed) {
        
        case "DATEOF": res = forecast.substring(forecast.indexOf("<dt_txt>")+8, forecast.indexOf("</dt_txt>"));
            break;
        
        case "DESCRIPTIONOF": res = forecast.substring(forecast.indexOf("<description>")+13, forecast.indexOf("</description>"));   
            break;
            
        case "TEMPOF": res = forecast.substring(forecast.indexOf("<temp>")+6, forecast.indexOf("</temp>"));   
                       res = auxMethods.kelvinToCelsius(Double.parseDouble(res));
                       break;           
                      
        case "HUMIDITYOF": res = forecast.substring(forecast.indexOf("<humidity>")+10, forecast.indexOf("</humidity>"));             
                        break;
                        
        case "PRESSUREOF": res = forecast.substring(forecast.indexOf("<pressure>")+10, forecast.indexOf("</pressure>")) + " hPa";
                        break;
        
        case "WINDSPEEDOF": res = forecast.substring(forecast.indexOf("speed>")+6, forecast.indexOf("</speed>"));
                        
                            double d = Double.parseDouble(res);
        
                            d = Math.round(d*1.61);
                            
                            res = String.valueOf(d) + " km/h";
                            
                           break;
        
        default: res = "";
        
        }
        
        return res;

    }

    /**
     * Hier werden die Daten per Rest ausgelesen sodass diese als JSONObjekt weiterverarbeitet werden können.   
     * @param ort
     * @return JSONObject Die Wetterdaten.
     */
    private static JSONObject readService(String ort) {
        
        Client client = Client.create();

        WebResource webResource = client
           .resource("https://api.openweathermap.org/data/2.5/forecast?q="+ort+",De&APPID=ca9d175f389c46b262b56ef51ef64436");

        ClientResponse response = webResource.accept("application/json")
                   .get(ClientResponse.class);

        if (response.getStatus() != 200) {
           throw new RuntimeException("Failed : HTTP error code : "
            + response.getStatus());
        }

        String output = response.getEntity(String.class);

        JSONObject json = new JSONObject(output);
        return json;
    }
    

 
}
 
K

kneitzel

Gast
Es ist sehr ungünstig, alles so in eine Klasse zu packen. Das macht Anpassungen extrem schwer, da alles unübersichtlich ist.

Du solltest da zwischen Model und View unterscheiden, d.h. eine Klasse für ein Fenster und eine Klasse, die die Daten enthält.
- Dann hat die View eine Methode, die Daten aus dem Model in die Controls zu schreiben.
- Das Model hat eine Methode, die Daten zu aktualisieren. Da hier ein Web Request erfolgt, würde ich das auch in einem eigenen Thread machen, der am Ende nur signalisiert: ich bin fertig.
- Immer wenn das Model signalisiert, dass die Daten erfolgreich geladen wurden, wird (im UI Thread!) die Methode der View aufgerufen, die die Daten aktualisiert.
- In den ActionListener kommt dann nur ein Aufruf im Model, das die Aktualisierung anstößt.
 

pkm

Bekanntes Mitglied
Vielen Dank für die Tipps. Voilà die Lösung.

Java:
package webserive.client;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.TreeMap;
import java.util.TreeSet;

import javax.swing.ImageIcon;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;

import org.json.JSONObject;
import org.json.XML;

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;

class DataClass {
    
      
    /**
     *
     * @param orte
     * @return Der Output.
     * @throws IOException
     */
    private static String getOutput(JComboBox<String> orte) throws IOException {
          
        
          //String output = Files.readString(Paths.get("C:\\Users\\*********\\Documents\\weatherdata.xml"));

        String output = XML.toString(readService(orte.getSelectedItem().toString()));
        
        return output;
    }


    /**
     * Hier werden die Informationen als String aus der XML herausgezogen.
     * @param INeed
     * @param forecast
     * @return Jeweilige Infos, die dann in die GUI kommen.
     */
    private static String getInformationFor(String INeed, String forecast) {

        AuxMethods auxMethods = new AuxMethods();
        
        String res = "";
        
        switch(INeed) {
        
        case "DATEOF": res = forecast.substring(forecast.indexOf("<dt_txt>")+8, forecast.indexOf("</dt_txt>"));
            break;
        
        case "DESCRIPTIONOF": res = forecast.substring(forecast.indexOf("<description>")+13, forecast.indexOf("</description>"));   
            break;
            
        case "TEMPOF": res = forecast.substring(forecast.indexOf("<temp>")+6, forecast.indexOf("</temp>"));   
                       res = auxMethods.kelvinToCelsius(Double.parseDouble(res));
                       break;           
                      
        case "HUMIDITYOF": res = forecast.substring(forecast.indexOf("<humidity>")+10, forecast.indexOf("</humidity>"));             
                        break;
                        
        case "PRESSUREOF": res = forecast.substring(forecast.indexOf("<pressure>")+10, forecast.indexOf("</pressure>")) + " hPa";
                        break;
        
        case "WINDSPEEDOF": res = forecast.substring(forecast.indexOf("speed>")+6, forecast.indexOf("</speed>"));
                        
                            double d = Double.parseDouble(res);
        
                            d = Math.round(d*1.61);
                            
                            res = String.valueOf(d) + " km/h";
                            
                           break;
        
        default: res = "";
        
        }
        
        return res;

    }

    
    /**
     * Hier werden die Daten per Rest ausgelesen sodass diese als JSONObjekt weiterverarbeitet werden können.   
     * @param ort
     * @return JSONObject Die Wetterdaten.
     */
    private static JSONObject readService(String ort) {
        
        Client client = Client.create();

        WebResource webResource = client
           .resource("https://api.openweathermap.org/data/2.5/forecast?q="+ort+",De&APPID=ca9d175f389c46b262b56ef51ef64436");

        ClientResponse response = webResource.accept("application/json")
                   .get(ClientResponse.class);

        if (response.getStatus() != 200) {
           throw new RuntimeException("Failed : HTTP error code : "
            + response.getStatus());
        }

        String output = response.getEntity(String.class);

        JSONObject json = new JSONObject(output);
        return json;
    }

    private TreeMap<String, String[]> forecasts;
    private TreeSet<String> differentDates;
    private int dateChanges = -1;
    
  /**
   * Stoesst die Aktualisierung der Daten an.   
   * @param orte
   */
  void init(JComboBox<String> orte) {
      
 TreeMap<String, String[]> forecasts = new TreeMap<>();
 TreeSet<String> differentDates = new TreeSet<>();
 
    try {
        
        String output = getOutput(orte);
        String forecast = ""; String dateOfForecast = "";
        String[] lists = output.split("<list>");
      
       String datum = "";
        
        for(int i = 1; i<lists.length;i++) {
            forecast = lists[i].replace("</list>", "");

            dateOfForecast = getInformationFor("DATEOF", forecast);
            
            String[] infos = { getInformationFor("DESCRIPTIONOF", forecast),
                               getInformationFor("TEMPOF", forecast),
                               getInformationFor("HUMIDITYOF", forecast),
                               getInformationFor("PRESSUREOF", forecast),
                               getInformationFor("WINDSPEEDOF", forecast)
            
            };

            if(!datum.equals(dateOfForecast.substring(0, 10))) {
                datum = dateOfForecast.substring(0, 10);
                differentDates.add(datum);
                dateChanges++;
            }
            
            forecasts.put(dateOfForecast, infos);
        
        }
      
            
      } catch (Exception e) {

        e.printStackTrace();

      }
        
    
    this.forecasts = forecasts;
    this.differentDates = differentDates;   
    

    
    }
 
////////////Getter, Setter//////////////
 
  TreeMap<String, String[]> getForecasts() {
      return this.forecasts;
  }
 
  int getDataChanges() {
    return this.dateChanges; 
  }
 
  TreeSet<String> getDifferentDate() {
    return this.differentDates; 
  }
 
}


class GUIClass {

       private static JFrame mainFrame;
      
       private static JPanel controlPanel;
      
       private JComboBox<String> orte;
        
      
       public GUIClass() {
          
           this.orte = new JComboBox<>();
          
             String[] description = { "Karlsruhe", "Stuttgart" };
                
               for (int i = 0; i < description.length; i++) {
                  
                 this.orte.addItem(description[i]);
              
               }
          
       }
      

/**
 * Hier wird die GUI gebaut.
 * @param dataCls
 * @param forecasts
 * @param dateChanges
 * @param differentDates
 */
    void createWindow(DataClass dataCls) {
              
        TreeMap<String, String[]> forecasts = dataCls.getForecasts();
        int dateChanges = dataCls.getDataChanges();
        TreeSet<String> differentDates = dataCls.getDifferentDate();
        
        getOrte().addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                dataCls.init(getOrte());
                mainFrame.dispatchEvent(new WindowEvent(mainFrame, WindowEvent.WINDOW_CLOSING));
                createWindow(dataCls);
            }
          });
        
          mainFrame = new JFrame("Wetterbericht");
          mainFrame.setSize(750,500);
          mainFrame.setLayout(new GridLayout(3, 1));
  
          JLabel headerLabel = new JLabel();
          
          controlPanel = new JPanel();
          
          controlPanel.setLayout(new FlowLayout());
          
          JPanel pan = new JPanel();
              pan.setLayout(new FlowLayout(FlowLayout.LEFT));
          
              pan.add(headerLabel); pan.add(orte);     
              
              mainFrame.add(pan);
          
          AuxMethods auxMethods = new AuxMethods();
          
          headerLabel.setText(auxMethods.getCurrentDate());
          headerLabel.setBorder(new EmptyBorder(0, 10, 0, 0));

          String[] columnNames = {"Voraussage für", "Beschreibung", "Temperatur", "Luftfeuchtigkeit", "Luftdruck", "Wind"};
          
          Object[][] data = new Object[dateChanges+forecasts.size()][6];
          int i = 0; int c = 0;
          for(String d : forecasts.keySet()) {
              String[] sa = new String[] { d,
                      forecasts.get(d)[0],
                      forecasts.get(d)[1],
                      forecasts.get(d)[2],
                      forecasts.get(d)[3],
                      forecasts.get(d)[4] };
              
              data[i] = sa;
              
              if(!d.substring(0, 10).equals(differentDates.toArray()[c])) {
                
                  data[i] = new String[] {"","","","","",""};
                   i++;
                  data[i] = sa;
                  
                  c++;
                  
              } else  {
                  
              }
              
              i++;
          }
          
        JTable table = new JTable(data, columnNames);
        JScrollPane scrollPane = new JScrollPane(table);
      
        mainFrame.add(scrollPane);
        ImageIcon icon = new ImageIcon("pix/icon.png");
        mainFrame.setIconImage(icon.getImage());
        mainFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        mainFrame.setVisible(true);   
          
     }


 


public JComboBox<String> getOrte() {
    
    return this.orte;
}
 
    
}

public class Main {

      
    /**
     * Extrahiere die Daten und uebergib diese der GUI-Bau-Methode.   
     * @param args
     */
    public static void main(String[] args) {
 
        GUIClass guiCls = new GUIClass();
        DataClass dataCls = new DataClass();
        
        dataCls.init(guiCls.getOrte());           
         guiCls.createWindow(dataCls);
                
        

    }
 
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S JDialog direkt über dem MainFrame aufpoppen lassen AWT, Swing, JavaFX & SWT 2
K Mainframe zentrieren AWT, Swing, JavaFX & SWT 4
D Wechsel der Komponenten im MainFrame . AWT, Swing, JavaFX & SWT 3
P JTextfield Text durch Keylistener verändern AWT, Swing, JavaFX & SWT 4
N JavaFX Vor beenden der Anwendung durch klicken von X Dialog zeigen AWT, Swing, JavaFX & SWT 1
L JButton durch Mausklick auslösen und Enter-Taste AWT, Swing, JavaFX & SWT 2
J Java Datei durch CMD mit Parameter ausführen AWT, Swing, JavaFX & SWT 1
A Panelwechsel durch RadioButtons AWT, Swing, JavaFX & SWT 1
J Falsches Rendern durch JCheckBox in eigenem JTree AWT, Swing, JavaFX & SWT 6
W Zweites/neues Fenster durch Button öffnen AWT, Swing, JavaFX & SWT 6
Monokuma 2D-Grafik Imageimport durch eine gezeichnete Form ersetzen AWT, Swing, JavaFX & SWT 16
N Aufruf einer anderen Klasse durch Button ActionListener AWT, Swing, JavaFX & SWT 2
T Anderen Java Code durch Code kompilieren und Fehler in Label ausgeben AWT, Swing, JavaFX & SWT 5
L JavaFX JavaFX stürtzt durch einen Server#connect Exception AWT, Swing, JavaFX & SWT 3
S Java GUI durch variable Größe einer Map anpassen AWT, Swing, JavaFX & SWT 3
S JavaFX Tab durch Enter ersetzten AWT, Swing, JavaFX & SWT 3
M Swing Durch Usereingabe neues Objekt AWT, Swing, JavaFX & SWT 2
L Java- UI zweites Fenster aus einer anderen Klasse öffnen durch ButtonClick AWT, Swing, JavaFX & SWT 4
C JavaFX Inhalt eines SplitPane's durch Menü-Auswahl ändern? AWT, Swing, JavaFX & SWT 13
S Speicher Leak durch Tabellenaktualisierung AWT, Swing, JavaFX & SWT 5
U Swing Inhalt vom Fenster wird erst durch Hovern oder Klicken sichtbar AWT, Swing, JavaFX & SWT 3
A JButton soll durch anklicken die Farbe wechseln AWT, Swing, JavaFX & SWT 8
N Swing Abfrage durch JTextField nach Button betätigung AWT, Swing, JavaFX & SWT 3
H zwei gleich große Panels getrennt durch ein weiteres Panel AWT, Swing, JavaFX & SWT 10
R Swing Durch JComboBox-Item eine TextArea aktualisieren AWT, Swing, JavaFX & SWT 2
C Durch klicken von Button neues Fenster oeffnen AWT, Swing, JavaFX & SWT 18
T Durch klicken eines Buttons Klasse wechseln AWT, Swing, JavaFX & SWT 2
B EventHandler für durch Tastenkombination erzeugte Zeichen AWT, Swing, JavaFX & SWT 3
D Swing keine JLabel-Aktualisierung bei "externem" Aufruf durch Helferklasse AWT, Swing, JavaFX & SWT 10
S AWT JTextFields durch Array im JMenu erzeugen? AWT, Swing, JavaFX & SWT 19
J JTable bounds ändern durch resizing des Fensters AWT, Swing, JavaFX & SWT 9
stylegangsta JLabel durch Klick auf JButton einblenden AWT, Swing, JavaFX & SWT 16
G Swing Durch GlassPane auf Button klicken und ActionEvent auslösen AWT, Swing, JavaFX & SWT 0
K Swing Durch Methode erzeugte Buttons ansteuern AWT, Swing, JavaFX & SWT 5
K JTable komplett durch andere ersetzen AWT, Swing, JavaFX & SWT 4
P Programm durch Dateiaufruf starten und Datei öffnen AWT, Swing, JavaFX & SWT 2
G Swing ComboBox: Auswahl eines Items der Liste durch Eingabe eines Buchstabens AWT, Swing, JavaFX & SWT 3
Z JavaFX Inhalt einer ViewTable durch Aktion einer Menubar ändern welche in einer anderen fxml ist AWT, Swing, JavaFX & SWT 4
R AWT AWT Textfeld durch Klick auf Button erstellen? AWT, Swing, JavaFX & SWT 3
F 2D-Grafik Objekt durch Einwirkung einer Kraft im Raum bewegen AWT, Swing, JavaFX & SWT 14
H Swing Probleme beim erstellen eines neuen Objektes durch einen Button AWT, Swing, JavaFX & SWT 10
P JFrame manuell Grösse verändern durch 'mouseDragged' AWT, Swing, JavaFX & SWT 3
Messoras JWindow/Frame durch das man durchklicken kann AWT, Swing, JavaFX & SWT 5
P Rendern von Geraden im 3 dimensionalen Raum durch Rotationen AWT, Swing, JavaFX & SWT 0
S Swing Navigation durch JPanels AWT, Swing, JavaFX & SWT 0
D Swing Durch JFRAME hindurch klicken AWT, Swing, JavaFX & SWT 2
C Swing Durch Inhaltsänderung eines JTextfields eine Funktion aufrufen AWT, Swing, JavaFX & SWT 5
achillesat SWT Browser öffnen durch Button click AWT, Swing, JavaFX & SWT 5
R JButton durch Enter auslösen AWT, Swing, JavaFX & SWT 7
S Canvas durch transparentes JPanel sichtbar machen AWT, Swing, JavaFX & SWT 2
K Zugriff auf Label und Ereignisbehandlung durch zwei Handlerklassen AWT, Swing, JavaFX & SWT 3
S Objekt durch Tasteneingabe mehrmals drehen AWT, Swing, JavaFX & SWT 9
A Minimalestopuhr: JLabel.setText() durch eigenes Event ändern AWT, Swing, JavaFX & SWT 6
A Swing JTextField durch einen JButton leeren AWT, Swing, JavaFX & SWT 15
A Swing Anpassen der Spaltenbreite durch die länge eines Strings AWT, Swing, JavaFX & SWT 3
P JPanel- Listener durch JTextArea aktivieren AWT, Swing, JavaFX & SWT 8
P Durch Bilder Scrollen AWT, Swing, JavaFX & SWT 2
J Swing JButton durch Eingabe von Zahlen in JTextFields aktivieren AWT, Swing, JavaFX & SWT 3
A JComboBox-Inhalt durch neues Array ersetzen AWT, Swing, JavaFX & SWT 2
L Border verschwindet durch Graphics.drawImage() AWT, Swing, JavaFX & SWT 4
S Swing Scrollpanes: wie kann ich durch Java-Code an den "Anfang" scrollen AWT, Swing, JavaFX & SWT 8
M Swing JMenu verdeckt durch Komponente (aber kein AWT und Swing mix!?) AWT, Swing, JavaFX & SWT 3
C Swing Fensterresize durch doppelklick - wie die neue Grösse erhalten? AWT, Swing, JavaFX & SWT 3
V Applet JApplet Flackern durch Repaint AWT, Swing, JavaFX & SWT 11
S SWT Shell durch Event in der Größe verändern AWT, Swing, JavaFX & SWT 7
F Drag & Drop durch Verbindungslinien AWT, Swing, JavaFX & SWT 10
F Wert durch ActionListener an Klasse übergeben AWT, Swing, JavaFX & SWT 3
L SWT Text SelectionText ersetzen durch anderen String AWT, Swing, JavaFX & SWT 6
O keine ähnliche Farben durch Random in Java AWT, Swing, JavaFX & SWT 21
L ListSelectionListener durch Code auslösen AWT, Swing, JavaFX & SWT 3
M Ein Tab eine JTabbedPane durch Button Druck öffen AWT, Swing, JavaFX & SWT 2
Shanks Hintergrundfarbe durch Button click ändern ?? AWT, Swing, JavaFX & SWT 6
R Durch Listener lässt sich Programm nicht mehr ausführen AWT, Swing, JavaFX & SWT 4
G Zeile in JTable durch rechte Maustaste manipulieren AWT, Swing, JavaFX & SWT 4
E Swing CellEditor mit Combobox durch Tastatureingabe editieren?! AWT, Swing, JavaFX & SWT 3
G Menü verschwindet durch .setText() AWT, Swing, JavaFX & SWT 4
A JScrollBar durch Button ersetzten AWT, Swing, JavaFX & SWT 2
xehpuk Swing Komponenten werden durch setFont() winzig AWT, Swing, JavaFX & SWT 3
T neues Fenster durch Button öffnen funktioniert nicht!! AWT, Swing, JavaFX & SWT 2
A Swing Komponente für Swing und JSF durch MVC AWT, Swing, JavaFX & SWT 5
J AWT Artefakte bei AWT-Rendering durch parallelen Thread AWT, Swing, JavaFX & SWT 4
B bin am verzweifeln, will auf knopfdruck durch ne überprüfung die labels unsichtbar machen AWT, Swing, JavaFX & SWT 2
V JTable - SelectionMode wird durch RowFilter verändert AWT, Swing, JavaFX & SWT 2
B Anzeigefehler in GridBagLayout durch paintComponent(Graphics g) AWT, Swing, JavaFX & SWT 3
B Pfade durch Farbräume definieren AWT, Swing, JavaFX & SWT 20
Semox Swing Kreis löschen durch Mausklick in der Nähe AWT, Swing, JavaFX & SWT 2
E Swing JPanels durch ziehen am Rand vergrößern/verkleinern?! AWT, Swing, JavaFX & SWT 2
Z JPanel wird erst durch aufziehen des Fensters sichtbar AWT, Swing, JavaFX & SWT 3
S Programmablauf durch "wait for Button" unterbrechen AWT, Swing, JavaFX & SWT 5
P jframe eingabe durch button AWT, Swing, JavaFX & SWT 2
E Login wird durch NullPointerException abgebrochen AWT, Swing, JavaFX & SWT 10
badfish Swing JPanel austauschen durch Button-Druck AWT, Swing, JavaFX & SWT 6
D Swing Storage von / Zugriff auf und durch Actions AWT, Swing, JavaFX & SWT 5
O JSlider - wie unterscheide ich mit Maus verändert und durch setValue verändert. AWT, Swing, JavaFX & SWT 16
T JTable durch ActionEvent befüllen AWT, Swing, JavaFX & SWT 3
U Tab schließen durch Button in Panel AWT, Swing, JavaFX & SWT 7
D ausgewählte Textstellen scheinen durch Dialog durch AWT, Swing, JavaFX & SWT 7
B Keine Änderungen an JLabel durch Array möglich AWT, Swing, JavaFX & SWT 12
B Inhalt von JTextField durch Klick auf JButton in JLabel anzeigen lassen AWT, Swing, JavaFX & SWT 8
B Heavyweight Popup lässt keine MouseEvents durch AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben