Puzzle - Erkennen wenn gelöst (array vergleichen)

HansK

Mitglied
Hallo,
Ich bin gerade dabei ein Puzzle-Spiel zu programmieren,
weiß aber gerade nicht weiter.
Hier meine Probleme.

1.) Das Programm soll erkennen, wann die Buttons in die richtige Reihenfolge gebracht wurden, das Puzzle also gelöst wurde, sodass eine Ausgabe gegeben werden kann ( zB "Congratulations!").
2.) Ich möchte einen "Reset" Menüpunkt hinzufügen, welcher mir die Buttons neu durchwürfelt.

Hier mein bisheriges Coding.
Das vergleichen müsste doch eigentlich mittels equals funktionen funktionieren oder?
Wenn ja, wo soll ich diese einbauen das das Programm auch erkennt das das Puzzle gelöst wurde?

Java:
public class PuzzlePro extends JFrame implements ActionListener {
 
    private int index;
    private JButton[] button;
    private JLabel label;
    private JLabel label2;
    
 
    public PuzzlePro() {
    
        super("Puzzle Pro");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize( 800, 600);
        setResizable ( false );
        setLocationRelativeTo(null);
        JPanel panel = new JPanel(new GridLayout(3,3));
        index = -1;
        
        button = new JButton[10];
        for (int i=1; i<button.length; i++) {
            button[i] = new JButton();
            button[i].addActionListener(this);
            button[i].setIcon(new ImageIcon(getClass().getResource("berg"+i+i+".jpg")));
 
        }
        
        for(int i = 1; i < button.length; i++){
                JButton tmp = button[i];
                int zelle = (int) (Math.random()*(button.length - i) + i);
                button[i] = button[zelle];
                button[zelle] = tmp;
                }
                
        for(int i = 1; i < button.length; i++){
                panel.add(button[i]);
                button[i].setVisible(false);
                }
        
        this.getContentPane().add(panel, BorderLayout.CENTER);
        this.getContentPane().add(label = new JLabel("Erstes Bild wählen"), BorderLayout.SOUTH);
 
    JMenu menu, submenu;
    JMenuItem menuItem;
    JMenuBar menuBar = new JMenuBar();
    
        menu = new JMenu( "GAME");          // Erzeugen eines Hauptmenüpunktes
    menuBar.add( menu);                       // Hinzufügen des Hauptmenüpunktes
    menuItem = new JMenuItem( "New Game"); // Erzeugen eines Untermenüs von Puzzle Pro
    menu.add(menuItem);
 
    menuItem.addActionListener( new ActionListener() {
      public void actionPerformed( ActionEvent e) {
              for (int i = 1; i < button.length; i++) {
              button[i].setVisible(true);
              }
      }
    });
    menuItem = new JMenuItem( "Exit");                    // Erzeugen eines Untermenüs von Puzzle Pro
    menu.add(menuItem);                                   // Untermenü wird dem Hauptmenü hinzugefügt
    menuItem.addActionListener( new ActionListener() {
      public void actionPerformed( ActionEvent e) {
        System.exit(0);                                      // Durch wählen des Menupunketes "Exit" wird das Fenster beendet
      }
    });
 
    menu = new JMenu( "Optionen");           // Erzeugen eines Hauptmenüpunktes
    menuBar.add( menu);                        // Hinzufügen des Hauptmenüpunktes
    
    menuItem = new JMenuItem( "Hilfe");
    menu.add(menuItem);
    menuItem.addActionListener( new ActionListener() {
      public void actionPerformed( ActionEvent e) {
        try
        {
        Desktop.getDesktop().open(new File("Hilfe.txt"));
        }
        catch(Exception eref)
        {
        }
      }
    });
    menuItem = new JMenuItem( "Handbuch"); // Erzeugen eines Untermenüs von Puzzle Pro
    menu.add(menuItem);
    menuItem.addActionListener( new ActionListener() {
      public void actionPerformed( ActionEvent e) {
        try
        {
        Desktop.getDesktop().open(new File("Handbuch.pdf"));
        }
        catch(Exception eref)
        {
        }
      }
    });
    menuItem = new JMenuItem( "About"); // Erzeugen eines Untermenüs von Puzzle Pro
    menu.add(menuItem);
    menuItem.addActionListener( new ActionListener() {
      public void actionPerformed( ActionEvent e) {
             JOptionPane.showMessageDialog(null, "                                         ", "About", JOptionPane.CLOSED_OPTION);
      }
    });
 
    setJMenuBar( menuBar);                  // Erzeugen der kompletten Menüleiste
    }
 
    public void actionPerformed(ActionEvent e) {
        int curIndex = -1;
        for (int i=0; i<button.length; i++) {
            if (e.getSource().equals(button[i])) {
                curIndex = i;
                break;
            }
        }
        if(index==-1) {
            index = curIndex;
            label.setText(" Zweites Bild wählen");
        }
        else {
            swapIcons(index, curIndex);
            index = -1;
            label.setText(" Erstes Bild wählen");
        }
    }
 
    private void swapIcons(int index1, int index2) {
        Icon icon = button[index1].getIcon();
        button[index1].setIcon(button[index2].getIcon());
        button[index2].setIcon(icon);
    }
 
    public static void main(String[] args) {
        JFrame frame = new PuzzlePro();
        frame.setVisible(true);
    }
}

Ich hoffe auf Tips und Codingbeispiele.

Gruß,
Hans
 

diggaa1984

Top Contributor
hm .. da du ja die Icons der Buttons änderst um ein Verschieben oder Ändern zu visualisieren .. ists mit'm Vergleichen eher schwierig. Die eigentlichen Buttonobjekte behalten ja ihre Position, nur das Bild der Buttons wird geändert, dass heisst du kannst schonmal nicht mit einer Reihenfolge der Buttons als Vergleich arbeiten.

Ich persönlich hätte im ersten anlauf, die Buttons sortiert in einer Datenstruktur abgelegt .. in dieser Struktur ändert sich die Reihenfolge nicht .. dann hätte ich wohl die Buttons zufällig verteilt. Diese Verteilung würde in einer zweiten Datenstruktur abgelegt werden, und diese Struktur würde sich beim Verschieben mit ändern, sodass diese immer den aktuellen Zustand widerspiegelt. Dann kannst du bei jedem Verschieben die 2 Strukturen vergleichen, wenn die 2. mit der 1. übereinstimmt, ist das Ding gelöst.
Je nachdem welche Daten du in der 2. Struktur ablegst kannst du auch erreichen, dass du lediglich den Inhalt der 2. Struktur prüfst und damit entscheidest ob alles korrekt verschoben wurde, indem sone Art Indizes der Bilder gespeichert werden. Das erste Bild muss dann bspw das erste Element in der Struktur sein. das. zweite Bild das 2. Element etc. Da brauchst du kein Vergleich mit der ersten Struktur durchführen.

Das ist wie gesagt meine erste Idee, die mir in den Sinn kommt .. aber gibt bestimmt noch originellere Sachen :)
 
Zuletzt bearbeitet:

Michael...

Top Contributor
Hatte Dir ja in den anderen Postings gesagt, dass Du mit der Vorgehensweise nicht wirklich glücklich werden wirst und dass beim direkten Tauschen der Icons von Button zu Button die Überprüfung später erschwert.

Es ist zwar möglich eine Liste/Array der Icons in richtiger Reihefolge vorzuhalten und die mit den Icons auf den Buttons gegenzuchecken.
Meine Empfehlung gilt aber immer noch: Fange mit einem einfachen Modell an das nur Zahlen statt Icons benutzt. Wenn das mal läuft kann man das relativ einfach erweitern und auf Basis der Zahlen im Model die Icons auf den Buttons setzen.
 

HansK

Mitglied
Vielen Dank digga und Michael, Ich werde versuchen das erstmal mit normalen Zahlen umzusetzen!
(Nochmal danke für die unglaublich guten Tips von davor @Michael)
 

HansK

Mitglied
Wie könnte man das mit dem Reset Button lösen?
Das Problem ist ja das die Bilder dann fest gesetzt werden :(
Kann ich die nachträglich auch nochmal shufflen?
 

diggaa1984

Top Contributor
hm in meinem fall hätte ich einfach wieder die reihenfolge in der 2. struktur geshuffled und dann die bilder der reihenfolge nach auf die buttons gelegt. ist ja nix anderes als beim ersten shufflen.
 

diggaa1984

Top Contributor
so hab nun mal was .. ohne das verschieben realisiert nur das ändern der komponenten und ich bin bei zahlen geblieben :D


Java:
import javax.swing.SwingUtilities;

public class MainClass {
	
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				MyFrame frame = new MyFrame();
				frame.setVisible(true);
			}
		});
	}
}

Java:
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;


public class MyFrame extends JFrame {

	private JButton[] buttons;
	private List<Integer> indices;
	
	public MyFrame() {
		super();
		setup();
		shuffle();
	}
	

	private void setup() {
		buttons = new JButton[9];
		indices = new ArrayList<Integer>();
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLayout(new GridLayout(3,3));
		
		for(int i=0; i<9; i++) {
			buttons[i] = new JButton("-");
			buttons[i].setPreferredSize(new Dimension(50,50));
			add(buttons[i]);
			indices.add(i);
		}//for
		
		setupMenu();
		pack();
	}
	
	
	private void setupMenu() {
		JMenuBar bar = new JMenuBar();
		JMenu m = new JMenu("Edit");
		JMenuItem mi = new JMenuItem("Reset");
		mi.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				MyFrame.this.shuffle();
			}
		});
		
		m.add(mi);
		bar.add(m);
		
		setJMenuBar(bar);
	}
	
	
	private void shuffle() {
		Collections.shuffle(indices);
		for(int i=0; i<9; i++) {
			buttons[i].setText(String.valueOf(indices.get(i)));
		}
	}
	
}
 

HansK

Mitglied
Danke diggaa hab es endlich hinbekommen!
Das einzige Problem was ich jetzt noch habe ist, wie ich das Programm erkennen lasse das es gelöst wurde.
Kann man ein weiteres array mit der "richtigen" reihenfolge festlegen und mittels equals funktion das geshuffelte array+ das richtige array vergleichen und dann eine ausgabe machen ( popup)??
bzw wie vergleiche ich die icons auf den buttons?
gruß hans
 
Zuletzt bearbeitet:

diggaa1984

Top Contributor
ja na irgendwo muss es direkt oder indirekt ne reihenfolge-information geben .. bei den zahlen war es so gedacht, dass es korrekt ist, wenn die 0 an [0] steht und die 1 an [1] und die 2 an [2] etc. ... mit bildern bzw komplexen Daten ist das da eben net ganz so simpel

du kannst dir ja erstmal eine Liste oder ein Array in der korrekten Reihenfolge anlegen, das bleibt unangetastet im gesamten Verlauf .. dann die 2. Struktur welche den aktuellen Zustand darstellt und prüfst die beiden strukturen gegeneinander.

weitere variante wäre:
Damit du nun nicht nach jedem Verschieben das gesamte Feld und damit alle Bilder durchlaufen und prüfen musst (weil sich ja immer nur 2 Einträge ändern können) .. könntest du zB noch eine Counter mitlaufen lassen, der angibt wieviele Bilder an der falschen Stelle sind .. vertauscht man nun 2 Bilder, so musst du nur diese 2 Positionen prüfen und erhöhst/verringerst den Counter oder lässt ihn wie er ist .. ist der Counter 0, ist alles korrekt verschoben.

Konstellationen:

  • verschieben 2er Bilder ohne das eines Richtig ist und bereits an alter position falsch war ... counter bleibt gleich
  • verschieben 2er Bilder wobei 1 korrekt ist und 1 falsch (beide waren an alter position bereits falsch) ... counter verringert sich um 1
  • verschieben 2er Bilder wobei nun beide korrekt sind ... counter verringert sich um 2
  • verschieben eines korrekten Bildes (wird dann quasi an falsche position geschoben) .. wobei das ersatzbild auch falsch ist und an alter position auch falsch war .. counter erhöht sich um 1
  • verschieben zweier korrekten Bilder ... counter erhöht sich um 2

somit hast alles möglich erfasst. Wenn man nur 9 Bilder hat, mag dieses System nicht notwendig sein, da man auch 9 Bilder jederzeit komplett überprüfen kann ... aber wenn du 100*100 hast oder weiss der geier wieviel, ist das schon ne ersparnis auch nur das zu prüfen was sich geändert hat


EDIT: ob man arrays per equals vergleichen kann .. nicht wie du das gern hättest! .. du musst in dem fall alle einträge der selben position miteinander vergleichen
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Puzzle - Listen erstellen, array & liste vergleichen AWT, Swing, JavaFX & SWT 28
H Bilder auf Buttons per Klick tauschen ( Puzzle ) AWT, Swing, JavaFX & SWT 8
T Puzzle Klick tausch AWT, Swing, JavaFX & SWT 3
H JavaFX Fenstergröße nach maximieren erkennen AWT, Swing, JavaFX & SWT 6
E Swing Mausposition auf einem JFrame erkennen AWT, Swing, JavaFX & SWT 5
M Gezeichnetes Dreieck mit HoughLines erkennen AWT, Swing, JavaFX & SWT 9
J splitpane - Wechseln auf anderen Split erkennen AWT, Swing, JavaFX & SWT 11
E Grafik karte erkennen AWT, Swing, JavaFX & SWT 3
D JavaFX Erkennen wenn eine Anwendung geschlossen wird und etwas tun? AWT, Swing, JavaFX & SWT 4
B Größer-/Kleinerziehen eines JFrames/JPanels erkennen AWT, Swing, JavaFX & SWT 2
D Swing JProgressBar soll ende erkennen AWT, Swing, JavaFX & SWT 4
P Pixelfarbe erkennen - funktioniert nicht AWT, Swing, JavaFX & SWT 8
G JFileChooser - erkennen v. existierenden Dateien ohne Endung AWT, Swing, JavaFX & SWT 1
I Choice erkennen AWT, Swing, JavaFX & SWT 3
F JFrame Änderung der Größe erkennen AWT, Swing, JavaFX & SWT 2
T erkennen ob innerhalb oder außerhalb von canvas gezeichnet AWT, Swing, JavaFX & SWT 2
G JList Schrift ist schwer zu erkennen AWT, Swing, JavaFX & SWT 5
R Klick in einem Tree erkennen und auswerten AWT, Swing, JavaFX & SWT 6
W Benutzereingaben sofort erkennen AWT, Swing, JavaFX & SWT 5
L Komponenten dynamisch erkennen und bearbeiten AWT, Swing, JavaFX & SWT 8
tommybalbor JavaFx Anwendung klappt nicht für macOs Nutzern, wenn ich zwei dependecies bei maven hinzufüge AWT, Swing, JavaFX & SWT 6
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
berserkerdq2 Wie füge ich ein Bild in javafx mit dem Scenebuilder ein, das automatisch mitgezogen wird, wenn das Fenster vergrößert wird oder Vollbildmodus AWT, Swing, JavaFX & SWT 6
TheSepp Fenster um x Pixel bewegen, wenn man auf dem Knopf drückt AWT, Swing, JavaFX & SWT 10
_user_q Objekt.setSelected(false), wenn es nicht mehr fokussiert wird AWT, Swing, JavaFX & SWT 2
N JFrame löscht alles, wenn groß gemacht AWT, Swing, JavaFX & SWT 9
H MouseAdapter Klasse nutzen wenn eigene Klasse bereits von anderer erbt AWT, Swing, JavaFX & SWT 13
G JavaFX Wert aus DB lesen, wenn erfolgreich automatisch eine fxml laden, möglich? AWT, Swing, JavaFX & SWT 2
Davee JavaFX ListView = null wenn ich sie in Laufzeit ändern will! AWT, Swing, JavaFX & SWT 16
S Event Handling Neu zeichnen nur wenn Berechnung fertig ist AWT, Swing, JavaFX & SWT 4
CptK windowClosed() nur aufrufen, wenn Fenster nicht über Button geschlossen wird AWT, Swing, JavaFX & SWT 1
VPChief Buttons Reagieren erst wenn ich Fenster minimiere AWT, Swing, JavaFX & SWT 4
Cromewell JavaFX ImageView vergößern wenn hovered AWT, Swing, JavaFX & SWT 2
Drachenbauer Hauptfenster erhält schmale Streifen rechts unt unten, wenn ich einen JDialog hinzufüge. AWT, Swing, JavaFX & SWT 19
ralfb1105 JavaFX ProgressIndicator Meldung wenn Task failed AWT, Swing, JavaFX & SWT 5
C JTextField Inhalt mit Maus selektieren wenn disabled AWT, Swing, JavaFX & SWT 2
L JavaFX Anderer Text, wenn kein Platz ist. AWT, Swing, JavaFX & SWT 1
K Swing JScrollPane wird nicht angezeigt wenn man Components darstellt. AWT, Swing, JavaFX & SWT 2
S JavaFX Fenster aufkommen lassen, wenn mit der Maus über bestimmten Bereich fahren AWT, Swing, JavaFX & SWT 1
richis-fragen JTree +/- verschwidet wenn Knoten keine Kinder hat... AWT, Swing, JavaFX & SWT 6
M Aktion ausführen wenn ein JRadiobutton deselektiert wird. AWT, Swing, JavaFX & SWT 3
J Event Handling Button "enablen" wenn Eingaben in Textfeldern korrekt sind AWT, Swing, JavaFX & SWT 1
F Event wenn Maus eine JList verlässt AWT, Swing, JavaFX & SWT 13
E [JavaFX]Wenn felder belegt dann Meldung Verwerfen? AWT, Swing, JavaFX & SWT 2
B Swing JButton deaktivieren, wenn nicht alle JTextFields ausgefüllt sind. AWT, Swing, JavaFX & SWT 2
G Swing Wenn ich mein JFrame Fenster vergrößere die Inhalte anpassen AWT, Swing, JavaFX & SWT 1
T KeyListener funktioniert nicht wenn ich ein JButton hinzufüge AWT, Swing, JavaFX & SWT 1
Thallius Wer oder was bestimmt welches Frame toFront kommt wenn ein anderes geschlossen wird? AWT, Swing, JavaFX & SWT 8
C SWT MenuBar & MenuItems Fokus wenn F10 unterdrücken/entfernen AWT, Swing, JavaFX & SWT 9
J JTabbedPane Vollbild wenn Tabwechsel AWT, Swing, JavaFX & SWT 1
V JScrollBar soll weiterscrollen, wenn Inhalt von JTextArea erweitert wird AWT, Swing, JavaFX & SWT 7
K Swing JScrollPane - JScrollBar anzeigen, wenn Frame verkleinert wird AWT, Swing, JavaFX & SWT 3
M JFreeChart neu zeichnen sich Wenn Jtable sich ändert AWT, Swing, JavaFX & SWT 5
Z Fenster leer, wenn ich ein JTextField erzeuge AWT, Swing, JavaFX & SWT 3
L JDialog - Event wenn Parent größe ändert AWT, Swing, JavaFX & SWT 2
T JavaFX ControlsFX-Notification öffnet nicht wenn kein JavaFX-Fenster offen. AWT, Swing, JavaFX & SWT 1
B Event Handling MouseListener Behält seine Variablen, auch wenn ich ein neus Objekt erstelle AWT, Swing, JavaFX & SWT 2
T SWT SWTBot Test: Dialog soll sich öffnen,wenn button gedrückt AWT, Swing, JavaFX & SWT 3
T SWT Button soll nur sichbar sein,wenn im Textfeld der Focus ist AWT, Swing, JavaFX & SWT 4
A Swing " comboboxes vergl. wenn aus der 1. etwas gewählt wurde ist, es in der 2. nicht mehr sichtbar AWT, Swing, JavaFX & SWT 9
J Swing JFrame slideout, wenn JButton gedrückt wurde AWT, Swing, JavaFX & SWT 0
A Swing GUI mit ComboBox, wenn Item ausgewählt wurde neues GUI AWT, Swing, JavaFX & SWT 7
R Swing getContentPane maximiert sich nicht mit, wenn man das JFrame maxmiert AWT, Swing, JavaFX & SWT 8
V GUI mit Swing -> Wenn IP eingegeben Domain ausgeben AWT, Swing, JavaFX & SWT 15
K JMenuItem-Shortcut WENN Menüleiste verborgen ist AWT, Swing, JavaFX & SWT 4
C Swing MenuItem feuert Action nur wenn disabled AWT, Swing, JavaFX & SWT 2
D 2 GUI-Fenster. 2.Fenster wird nicht aufgebaut, wenn erstes beschäftigt ist. AWT, Swing, JavaFX & SWT 4
S Button (ActionListener) funktioniert nicht, wenn y-Koordinate verändert wird AWT, Swing, JavaFX & SWT 5
C JButton umbennen wenn gedrückt AWT, Swing, JavaFX & SWT 9
Z Swing Wenn JFrame inaktiv - Soundbenachrichtigung bei Aktion AWT, Swing, JavaFX & SWT 2
I swing fenster neu zeichnen, wenn überdeckt AWT, Swing, JavaFX & SWT 8
C AWT Fokus von Component entfernen, wenn kein anderes vorhanden AWT, Swing, JavaFX & SWT 4
C AWT Buttons verschwinden, wenn Fenster Vollbild gesetzt wird AWT, Swing, JavaFX & SWT 38
N JCombobox und Actionlistener Aktion nur ausführen, wenn Useraktion ihn auslöst AWT, Swing, JavaFX & SWT 4
C MouseMotionListener fired keine Events mehr wenn in Button AWT, Swing, JavaFX & SWT 2
R Fensterinhalt erscheint erst, wenn das Fenster verändert wird AWT, Swing, JavaFX & SWT 7
A Swing Bug in Swing? Wenn checkbox disabled reagiert ActionListener nicht AWT, Swing, JavaFX & SWT 5
K JButton nur dann aktivieren, wenn die Mouse 3 Sek. über dem Button bleibt AWT, Swing, JavaFX & SWT 2
N Button akivieren, wenn Tabelle verändert worden ist AWT, Swing, JavaFX & SWT 2
W Swing Bild zeichnen wenn Maus an bestimmter Position ist AWT, Swing, JavaFX & SWT 4
GianaSisters JTable erkennung wenn Text eingefügt AWT, Swing, JavaFX & SWT 3
alex_fairytail Swing Textfeld Action wenn geschrieben wird? AWT, Swing, JavaFX & SWT 6
S Swing Panelgröße anpassen wenn Frame maximiert wird AWT, Swing, JavaFX & SWT 2
R JFreeChart aktualisieren wenn sich die Ausgangsdaten ändern AWT, Swing, JavaFX & SWT 8
J Swing Cursor von Child falsch, wenn Parant disabled AWT, Swing, JavaFX & SWT 2
xehpuk Swing JScrollBar wird nicht eingeblendet, wenn JTable befüllt wird AWT, Swing, JavaFX & SWT 4
J Swing Lazy Loading in JTree wenn gescrollt wird AWT, Swing, JavaFX & SWT 3
K JTable wird nicht aktualisiert, wenn Filter gesetzt ist AWT, Swing, JavaFX & SWT 9
M Menübar soll bestehen bleiben, wenn andere Masken geöffnet werden AWT, Swing, JavaFX & SWT 4
0 Swing Drag n' Drop Bug wenn Source und Target gleiche Komponente? AWT, Swing, JavaFX & SWT 4
Dit_ Wenn viele NebenFenster zum Locationsetzen das HauptFenster brauchen AWT, Swing, JavaFX & SWT 2
H Funktion ausführen wenn Button gedrückt wird. AWT, Swing, JavaFX & SWT 2
T Swing JTable - true zurückbekommen, wenn der Cursor in einer Zelle blinkt AWT, Swing, JavaFX & SWT 7
T neuer JFrame öffnet sich erst wenn Methode die dahinerliegt abgeschlossen ist. BUG? AWT, Swing, JavaFX & SWT 4
M JWindow schließen wenn Frame sich ändert AWT, Swing, JavaFX & SWT 2
data89 Komponenten verschwinden von JPanel, wenn ich den HG selbst male - Hilfeeee AWT, Swing, JavaFX & SWT 16
D Swing Spaltenköpfe verschieben sich nicht mit, wenn man an horizontaler Scrollbar zieht AWT, Swing, JavaFX & SWT 9
aze JTable automatisch vergrößern wenn das zugehörige JFrame vergrößert wird AWT, Swing, JavaFX & SWT 13
K Wenn Mauszeiger in der Nähe vom Kreis, soll Kreis an eine andere Stelle springen AWT, Swing, JavaFX & SWT 8
E Graphics2D: altes Objekt löschen, wenn repaint aufgerufen wird AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben