JInternalFrame in ein JPanel stecken?

Coldstorm

Aktives Mitglied
Ich hab eine Klasse, die ein JPanel zurückgibt(extends JPanel).
Außerdem habe ich darin ein JFrame, worauf ich ein Spielfeld zeichne mit Graphics g.
Nun muss ich schnittstellenbedingt aus dem JFrame ein JInteralFrame oder ähnliches machen,
darf eben kein eigenes Fenster machen. Bei JInternalFrame zeigt er mir nun überhaupt nichts an,
welche Möglichkeiten gibt es?

Java:
public class Chess extends JPanel implements Plugin{
	
	private Square mSelectedSquare;
	private JMenuBar mMenue;
	private ChessBoard mBoard;
	public JTextField mField;
	protected String mName = null;
	private JMenu mFile, mSuggestion, mHelp;
	private JMenuItem mNewGame, mResign, mQuit, mSuggestionOn, mSuggestionOff, mInstructions, mRules;
	private JInternalFrame chess;
	
	public Chess() {
		JInternalFrame chess = new JInternalFrame("Schach");
		chess.setLayout(new BorderLayout());
		JMenuBar mMenue = new JMenuBar();
		chess.setJMenuBar(mMenue);
		chess.setSize(300,300);
		chess.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
		
		mBoard = new ChessBoard();
		chess.setVisible(true);
		mField = new JTextField();
		mField.setSize(100,100);
		mField.setEditable(false);
		mFile = new JMenu("Datei");
		mHelp = new JMenu("Hilfe");

Das Programm funktioniert mit JFrame einwandfrei, ich hab nur das JFrame durch JInternalFrame ersetzt ..was muss ich noch beachten?
Michael... du weißt es bestimmt :D
 
Zuletzt bearbeitet:

Coldstorm

Aktives Mitglied
So TR ?

Java:
public class Chess extends JPanel implements Plugin{
	
	private Square mSelectedSquare;
	private JMenuBar mMenue;
	private ChessBoard mBoard;
	public JTextField mField;
	protected String mName = null;
	private JMenu mFile, mSuggestion, mHelp;
	private JMenuItem mNewGame, mResign, mQuit, mSuggestionOn, mSuggestionOff, mInstructions, mRules;
	private JInternalFrame chess;
	private JDesktopPane desktop;
	
	public Chess() {
		JDesktopPane desktop = new JDesktopPane();
		JInternalFrame chess = new JInternalFrame("Schach");
		desktop.add(chess);

		chess.setLayout(new BorderLayout());
		JMenuBar mMenue = new JMenuBar();
		chess.setJMenuBar(mMenue);
		chess.setSize(300,300);
		chess.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
Da zeigt er noch nix an...

Ja vielleicht eRaaaa...hauptsächlich ich kann damit zeichnen mit dem Graphics g, weil das benutze ich später in einer anderen Klasse.
 

TR

Aktives Mitglied
hmm, ich hatte dein 1. Beitrag anscheinend nicht richtig gelesen, ich glaube das mit dem JInternalFrame und so ist nicht der richtige Weg!
Warum darfst du kein JFrame verwenden? was hast das mit der Schnittstelle auf sich? JInternalFrame hat man ja mehr oder weniger auch wieder sein eigenes Fenster! Irgendwie musst du nochmal sagen was du nachher haben willst, so glaub ich kann ich dir nicht wirklich sinnvoll helfen!
 
S

SlaterB

Gast
immer langsam anfangen,
wieso sind da 10 Dinge (JPanel, JDesktopPane JInternalFrame , MenuBar, Menüs..) auf einmal in einem Programm welches noch gar nicht funktioniert?

größeres Problem in beiden Codes:
es gibt eine Klasse Chess, von der auch ein Objekt erzeugt wird,
aber dann eine Variable chess, die vom Typ JInternalFrame ist,
das passt nicht zusammen, in jedem Programm mit Klassen names Chess sollten höchstens Chess-Variablen chess heißen..

das Chess-Objekt (this) wird bisher nirgendwo verwendet, oder?
ein vollständiges Programm mit main-Methode wäre auch immer zu begrüßen
 

Coldstorm

Aktives Mitglied
Mein Programm wird in ein Framework eingebettet und soll nur ein JPanel zurückliefern...
So hier die Klasse:

Java:
package schach;


import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.FileReader;
import java.io.IOException;

import javax.swing.JDesktopPane;
import javax.swing.JDialog;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import sfrankenberger.Logger;
import framework.Anfrage;
import framework.client.Plugin;

public class Chess extends JPanel implements Plugin{
	
	private Square mSelectedSquare;
	private JMenuBar mMenue;
	private ChessBoard mBoard;
	public JTextField mField;
	protected String mName = null;
	private JMenu mFile, mSuggestion, mHelp;
	private JMenuItem mNewGame, mResign, mQuit, mSuggestionOn, mSuggestionOff, mInstructions, mRules;
	private JFrame chess;
	//private JDesktopPane desktop;
	
	public Chess() {
		//JDesktopPane desktop = new JDesktopPane();
		JFrame chess = new JFrame("Schach");
		//desktop.add(chess);

		chess.setLayout(new BorderLayout());
		JMenuBar mMenue = new JMenuBar();
		chess.setJMenuBar(mMenue);
		chess.setSize(300,300);
		chess.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		
		mBoard = new ChessBoard();
		chess.setVisible(true);
		mField = new JTextField();
		mField.setSize(100,100);
		mField.setEditable(false);
		mFile = new JMenu("Datei");
		mHelp = new JMenu("Hilfe");
		mSuggestion = new JMenu("Zugvorschlag");
		mNewGame = new JMenuItem("Neues Spiel");
		mResign = new JMenuItem("Aufgeben");
		mQuit = new JMenuItem("Beenden");
		mInstructions = new JMenuItem("Anleitung");
		mRules = new JMenuItem("Spielregeln");
		mSuggestionOn = new JMenuItem("Zugvorschlag an");
		mSuggestionOff = new JMenuItem("Zugvorschlag aus");
		mMenue.add(mFile);
		mMenue.add(mSuggestion);
		mMenue.add(mHelp);
		
		mFile.add(mNewGame);
		mFile.add(mResign);
		mFile.add(mQuit);
		mSuggestion.add(mSuggestionOn);
		mSuggestion.add(mSuggestionOff);
		mHelp.add(mInstructions);
		mHelp.add(mRules);
		

		ActionListener eSuggestionOn = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0)
			{}
		};
		mSuggestionOn.addActionListener(eSuggestionOn);
		
		
		ActionListener eSuggestionOff = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0)
			{}
		};
		mSuggestionOff.addActionListener(eSuggestionOff);
		
		
		ActionListener eNewGame = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
				newGame();
				mBoard.getModel().takeStartPosition();
			}
		};
		mNewGame.addActionListener(eNewGame);
		
		ActionListener eResign = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
				resign();
			}
		};
		mResign.addActionListener(eResign);
		
		ActionListener eQuit = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
				getOptionMsg();
			}
		};
		mQuit.addActionListener(eQuit);
		
		ActionListener eInstructions = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
				GameInstructionsLoad();
			}
		};
		mInstructions.addActionListener(eInstructions);
		
		ActionListener eGameRules = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
					GameRulesLoad();
			}
		};
		mRules.addActionListener(eGameRules);
		
		chess.setSize(600,600);
		chess.add(mMenue, BorderLayout.NORTH);
		chess.add(mBoard, BorderLayout.CENTER);
		chess.add(mField, BorderLayout.SOUTH);
		chess.setVisible(true);
		
		
		mBoard.addMouseListener(new MouseListener(){
			
			public void mouseClicked(MouseEvent evt) {
				if (evt.getSource() instanceof Square) {
					mSelectedSquare = (Square)evt.getSource();
					//System.out.println(selectedSquare);
				}
			}
			
			public void mouseEntered(MouseEvent evt) {
				if (evt.getSource() instanceof Square) {
					mSelectedSquare = (Square)evt.getSource();
					//if (selectedSquare.isOccupied())
					//	System.out.println(selectedSquare.getFigur().toString());
				}
			}
			
			public void mouseExited(MouseEvent evt) {}
			public void mousePressed(MouseEvent evt) {}
			public void mouseReleased(MouseEvent evt) {}
		});
	}
	
	
	
	public static void main(String[]args) 
	{
		new Chess().setVisible(true);
	}

	public void datenEmpfangen(Anfrage anfrage) {
		
	  // TODO Auto-generated method stub
  }

	public JPanel getPanelContent() {
	  // TODO Auto-generated method stub
	  return this;
  }

	public JPopupMenu getPopupForUserlist(String selected_user) {
	  // TODO Auto-generated method stub
	  return null;
  }

	public void unload() {
	  // TODO Auto-generated method stub
	  
  }

	@Override
  public String getIFrameTitle() {
	  // TODO Auto-generated method stub
		return "Schach";
  }

	@Override
  public Dimension getPreferredIFrameSize() {
	  // TODO Auto-generated method stub
		return new Dimension(600, 600);
  }
}

Ein paar Methoden habe ich entfernt, damit es nicht ganz so lange ist...
 

Michael...

Top Contributor
Danke für Dein Vertrauen ;-)

Du musst Deinen InternalFrame irgendwie nach aussen geben.
Warum erbt die Klasse Chess von JPanel? Kann sie nicht von JInternalFrame erben, dann könnte man alle Komponenten einfügen und die Klasse, die eine Instanz von Chess erzeugt hätte gleich die Referenz, um sie bei sich einzufügen.

Dein Pluginsystem ist mir noch nicht ganz klar. Wie ist das Interface Plugin definiert? Vielleicht kann man daraus was erkennen.

Noch ein paar Anmerkungen von den Variablen mMenue und chess exisiert jeweils eine lokale (im Konstruktor) und eine globale Variante - ich behaupte mal das ist nicht Deine Absicht.
Java:
public class Chess extends JPanel implements Plugin{
	
	...
	private JMenuBar mMenue;
	...
	...
	...
	...
	...
	private JInternalFrame chess;
	
	public Chess() {
		JInternalFrame chess = new JInternalFrame("Schach");
		...
		JMenuBar mMenue = new JMenuBar();
		...
 

Coldstorm

Aktives Mitglied
So, also ich nun nochmal den Code etwas angepasst. Bei Zeile 177 wird dann this, also das JPanel
meinem Framework übergeben(deswegen muss es ein JPanel sein). Mein JFrame ist ein eigenes Fenster,
es soll aber ein internes Fenster in dem Framework sein. Mein Fenster soll in das Fenster von dem Framework geladen werden.

Java:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.FileReader;
import java.io.IOException;

import javax.swing.JDesktopPane;
import javax.swing.JDialog;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import sfrankenberger.Logger;
import framework.Anfrage;
import framework.client.Plugin;

public class Chess extends JPanel implements Plugin{ //extends JPanel muss bleiben
	
	private Square mSelectedSquare;
	private ChessBoard mBoard;
	public JTextField mTextField;
	protected String mName = null;
	private JMenu mFile, mSuggestion, mHelp;
	private JMenuItem mNewGame, mResign, mQuit, mSuggestionOn, mSuggestionOff, mInstructions, mRules;
	private JFrame mPlayingField; //statt JFrame JInternalFrame 
	
	public Chess() {
		
		mPlayingField = new JFrame("Schach"); //statt JFrame JInternalFrame
		mPlayingField.setLayout(new BorderLayout());
		JMenuBar mMenue = new JMenuBar();
		mPlayingField.setJMenuBar(mMenue);
		mPlayingField.setSize(300,300);
		mPlayingField.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		
		mBoard = new ChessBoard();
		mPlayingField.setVisible(true);
		mTextField = new JTextField();
		mTextField.setSize(100,100);
		mTextField.setEditable(false);
		mFile = new JMenu("Datei");
		mHelp = new JMenu("Hilfe");
		mSuggestion = new JMenu("Zugvorschlag");
		mNewGame = new JMenuItem("Neues Spiel");
		mResign = new JMenuItem("Aufgeben");
		mQuit = new JMenuItem("Beenden");
		mInstructions = new JMenuItem("Anleitung");
		mRules = new JMenuItem("Spielregeln");
		mSuggestionOn = new JMenuItem("Zugvorschlag an");
		mSuggestionOff = new JMenuItem("Zugvorschlag aus");
		mMenue.add(mFile);
		mMenue.add(mSuggestion);
		mMenue.add(mHelp);
		mFile.add(mNewGame);
		mFile.add(mResign);
		mFile.add(mQuit);
		mSuggestion.add(mSuggestionOn);
		mSuggestion.add(mSuggestionOff);
		mHelp.add(mInstructions);
		mHelp.add(mRules);
		

		ActionListener eSuggestionOn = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0)
			{}
		};
		mSuggestionOn.addActionListener(eSuggestionOn);
		
		
		ActionListener eSuggestionOff = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0)
			{}
		};
		mSuggestionOff.addActionListener(eSuggestionOff);
		
		
		ActionListener eNewGame = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
				//newGame();
				mBoard.getModel().takeStartPosition();
			}
		};
		mNewGame.addActionListener(eNewGame);
		
		ActionListener eResign = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
				//resign();
			}
		};
		mResign.addActionListener(eResign);
		
		ActionListener eQuit = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
				//getOptionMsg();
			}
		};
		mQuit.addActionListener(eQuit);
		
		ActionListener eInstructions = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
				//GameInstructionsLoad();
			}
		};
		mInstructions.addActionListener(eInstructions);
		
		ActionListener eGameRules = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
					//GameRulesLoad();
			}
		};
		mRules.addActionListener(eGameRules);
		
		mPlayingField.setSize(600,600);
		mPlayingField.add(mMenue, BorderLayout.NORTH);
		mPlayingField.add(mBoard, BorderLayout.CENTER);
		mPlayingField.add(mTextField, BorderLayout.SOUTH);
		mPlayingField.setVisible(true);
		
		
		mBoard.addMouseListener(new MouseListener(){
			
			public void mouseClicked(MouseEvent evt) {
				if (evt.getSource() instanceof Square) {
					mSelectedSquare = (Square)evt.getSource();
					//System.out.println(selectedSquare);
				}
			}
			
			public void mouseEntered(MouseEvent evt) {
				if (evt.getSource() instanceof Square) {
					mSelectedSquare = (Square)evt.getSource();
					//if (selectedSquare.isOccupied())
					//	System.out.println(selectedSquare.getFigur().toString());
				}
			}
			
			public void mouseExited(MouseEvent evt) {}
			public void mousePressed(MouseEvent evt) {}
			public void mouseReleased(MouseEvent evt) {}
		});
	}
	
	public static void main(String[]args) 
	{
		new Chess().setVisible(true);
	}

	public void datenEmpfangen(Anfrage anfrage) {
		
	  // TODO Auto-generated method stub
  }

	public JPanel getPanelContent() {
	  // TODO Auto-generated method stub
	  return this;
  }

	public JPopupMenu getPopupForUserlist(String selected_user) {
	  // TODO Auto-generated method stub
	  return null;
  }

	public void unload() {
	  // TODO Auto-generated method stub
	  
  }

	@Override
  public String getIFrameTitle() {
	  // TODO Auto-generated method stub
		return "Schach";
  }

	@Override
  public Dimension getPreferredIFrameSize() {
	  // TODO Auto-generated method stub
		return new Dimension(600, 600);
  }
}

Die Klasse funktioniert so einwandfrei, nur eben will ich das JFrame in ein JInternalFrame ändern(ist kommentiert). Hab schon probiert, aber funktioniert nicht. Hab die Übersicht verloren...
Ich überlege vielleicht einen LayoutManager zu benutzen, kann ich damit auch in bereits bestehenden
Code eingreifen? Aber vielleicht wisst ihr, wie ich das ändern kann, so kurz wie möglich.
 
Zuletzt bearbeitet:

Coldstorm

Aktives Mitglied
Hm...dann sagen wir so:
Ich hab mein JPanel. Dann brauche ich aber noch eine Komponte innerhalb des JPanels dazu, wo ich dann anschließend zeichnen kann. Momentan wird auf einem JFrame gezeichnet. Ein JPanel unterstützt aber keine paint mit Graphics g, soweit ich weiß? Ich hab noch bisschen rumgefragt, der eine meinte mit Canvas?
Bin mir aber nicht sicher, ob er es richtig verstanden hat.
 
Zuletzt bearbeitet:
S

SlaterB

Gast
auf einem JPanel kannst du mit paintComponent(g) gut malen,

hier aber noch ein Programm mit Desktop
Java:
public class TestGUI  extends JFrame
{

    public TestGUI()
    {
        Chess c = new Chess();
        add(c);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 300);
        setVisible(true);
    }

    public static void main(String[] args)
    {
        new TestGUI();
    }
}

class Chess
    extends JPanel
{
    public JTextField mTextField;
    protected String mName = null;
    private JMenu mFile, mSuggestion, mHelp;
    private JMenuItem mNewGame, mResign, mQuit, mSuggestionOn, mSuggestionOff, mInstructions, mRules;

    public Chess()
    {
        mTextField = new JTextField();
        mTextField.setSize(100, 100);
        mTextField.setEditable(false);
        mFile = new JMenu("Datei");
        mHelp = new JMenu("Hilfe");
        mSuggestion = new JMenu("Zugvorschlag");
        mNewGame = new JMenuItem("Neues Spiel");
        mResign = new JMenuItem("Aufgeben");
        mQuit = new JMenuItem("Beenden");
        mInstructions = new JMenuItem("Anleitung");
        mRules = new JMenuItem("Spielregeln");
        mSuggestionOn = new JMenuItem("Zugvorschlag an");
        mSuggestionOff = new JMenuItem("Zugvorschlag aus");
        JMenuBar mMenue = new JMenuBar();
        mMenue.add(mFile);
        mMenue.add(mSuggestion);
        mMenue.add(mHelp);
        mFile.add(mNewGame);
        mFile.add(mResign);
        mFile.add(mQuit);
        mSuggestion.add(mSuggestionOn);
        mSuggestion.add(mSuggestionOff);
        mHelp.add(mInstructions);
        mHelp.add(mRules);

        JInternalFrame intf = new JInternalFrame("Schach");
        intf.setJMenuBar(mMenue);
        intf.setSize(300, 200);
        intf.add(mMenue, BorderLayout.NORTH);
        intf.add(mTextField, BorderLayout.SOUTH);
        intf.setLocation(20, 20);
        intf.setVisible(true);

        JDesktopPane dp = new JDesktopPane();
        dp.add(intf);

        setLayout(new BorderLayout());
        add(dp);

    }

}
 

Michael...

Top Contributor
Ein JPanel unterstützt aber keine paint mit Graphics g, soweit ich weiß? Ich hab noch bisschen rumgefragt, der eine meinte mit Canvas?
Schau Dir mal die Klasse Square an die erbt von JPanel und überschreibt paintComponent(...) (bei Swingkomponenten überschreibt man paintComponent anstelle von paint)
Wenn ich das richtig verstehe
- gibt es eine gegebene Systemumgebung in der Deine Anwendung dargestellt werden soll
- die Schnittstelle ist dabei ein JPanel, welches das Programm entgegen nimmt und bei sich einfügt

Wenn das so zutrifft: warum willst Du das alles in ein InternalFrame einfügen anstatt in ein JPanel das Du dem Pluginsystem übergibst?
 

Coldstorm

Aktives Mitglied
Ja du hast Recht, es muss ein JPanel sein, kein JInternalFrame, hab den Tipp von jemanden bekommen ohne selbst richtig überlegt zu haben... brauche ich dann irgendwie einen Container noch oder sowas?
Das was ich anzeigen möchte besteht ja aus einem Menü, ein Spielfeld und unten eine Statusleiste.
 

Coldstorm

Aktives Mitglied
Michael...weißt du wie ich da vorgehen kann?

Wenn ich jetzt das "mPlayingField = new JFrame("Schach");" weglasse, und mein
Framework nur das JPanel aufruft. Ich möchte aber, dass das Menü oben, das Spielfeld in der Mitte und das TextField(Statusleiste)
unten angezeigt wird innerhalb des Fensters vom Framework.
 

Michael...

Top Contributor
War eigentlich der Meinung, dass ich gestern diesbzgl. was gepostet hätte - habe es scheinbar aber nicht abgeschickt.

Prinzipiell musst Du im Konstruktor einfach nur
Code:
mPlayingField
durch
Code:
this
ersetzen (Bezug: Dein gestern um 14:52 geposteter Code). Alles was im Code dann nicht mehr passt, kannst Du dann rausschmeissen.
 
S

SlaterB

Gast
das war eine Antwort auf deine Frage
> Wenn das so zutrifft: warum willst Du das alles in ein InternalFrame einfügen anstatt in ein JPanel das Du dem Pluginsystem übergibst?

in ein JPanel kann man kaum ein Menü anzeigen,
 

Coldstorm

Aktives Mitglied
hm...ok danke, ich werde es morgen gleich austesten, jetzt hab ich leider keinen Zugriff auf das Framework
Was du genau meinst SlaterB, versteh ich nicht
 
Zuletzt bearbeitet:

Coldstorm

Aktives Mitglied
Ich hab's nochmal geändert. Jetzt sollte es eigentlich funktionieren oder? Wenn
ich es laufen lasse, dann wird überhaupt gar nichts angezeigt, Fehler gibt es auch nicht.
Hab ich was übersehen?

Java:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.FileReader;
import java.io.IOException;

import javax.swing.JDesktopPane;
import javax.swing.JDialog;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import sfrankenberger.Logger;
import framework.Anfrage;
import framework.client.Plugin;

public class Chess extends JPanel implements Plugin{ //extends JPanel muss bleiben
	
	private Square mSelectedSquare;
	private ChessBoard mBoard;
	public JTextField mTextField;
	protected String mName = null;
	private JMenu mFile, mSuggestion, mHelp;
	private JMenuItem mNewGame, mResign, mQuit, mSuggestionOn, mSuggestionOff, mInstructions, mRules;
	private JPanel mPlayingField; 
	
	public Chess() {
		
		//mPlayingField = new JPanel(); 
		this.setLayout(new BorderLayout());
		JMenuBar mMenue = new JMenuBar();
		this.add(mMenue);
		this.setSize(300,300);
		//mPlayingField.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		
		mBoard = new ChessBoard();
		this.setVisible(true);
		mTextField = new JTextField();
		mTextField.setSize(100,100);
		mTextField.setEditable(false);
		mFile = new JMenu("Datei");
		mHelp = new JMenu("Hilfe");
		mSuggestion = new JMenu("Zugvorschlag");
		mNewGame = new JMenuItem("Neues Spiel");
		mResign = new JMenuItem("Aufgeben");
		mQuit = new JMenuItem("Beenden");
		mInstructions = new JMenuItem("Anleitung");
		mRules = new JMenuItem("Spielregeln");
		mSuggestionOn = new JMenuItem("Zugvorschlag an");
		mSuggestionOff = new JMenuItem("Zugvorschlag aus");
		mMenue.add(mFile);
		mMenue.add(mSuggestion);
		mMenue.add(mHelp);
		mFile.add(mNewGame);
		mFile.add(mResign);
		mFile.add(mQuit);
		mSuggestion.add(mSuggestionOn);
		mSuggestion.add(mSuggestionOff);
		mHelp.add(mInstructions);
		mHelp.add(mRules);
		

		ActionListener eSuggestionOn = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0)
			{}
		};
		mSuggestionOn.addActionListener(eSuggestionOn);
		
		
		ActionListener eSuggestionOff = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0)
			{}
		};
		mSuggestionOff.addActionListener(eSuggestionOff);
		
		
		ActionListener eNewGame = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
				//newGame();
				mBoard.getModel().takeStartPosition();
			}
		};
		mNewGame.addActionListener(eNewGame);
		
		ActionListener eResign = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
				//resign();
			}
		};
		mResign.addActionListener(eResign);
		
		ActionListener eQuit = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
				//getOptionMsg();
			}
		};
		mQuit.addActionListener(eQuit);
		
		ActionListener eInstructions = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
				//GameInstructionsLoad();
			}
		};
		mInstructions.addActionListener(eInstructions);
		
		ActionListener eGameRules = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
					//GameRulesLoad();
			}
		};
		mRules.addActionListener(eGameRules);
		
		this.setSize(600,600);
		this.add(mMenue, BorderLayout.NORTH);
		this.add(mBoard, BorderLayout.CENTER);
		this.add(mTextField, BorderLayout.SOUTH);
		this.setVisible(true);
		
		
		mBoard.addMouseListener(new MouseListener(){
			
			public void mouseClicked(MouseEvent evt) {
				if (evt.getSource() instanceof Square) {
					mSelectedSquare = (Square)evt.getSource();
					//System.out.println(selectedSquare);
				}
			}
			
			public void mouseEntered(MouseEvent evt) {
				if (evt.getSource() instanceof Square) {
					mSelectedSquare = (Square)evt.getSource();
					//if (selectedSquare.isOccupied())
					//	System.out.println(selectedSquare.getFigur().toString());
				}
			}
			
			public void mouseExited(MouseEvent evt) {}
			public void mousePressed(MouseEvent evt) {}
			public void mouseReleased(MouseEvent evt) {}
		});
	}
	
	public static void main(String[]args) 
	{
		new Chess().setVisible(true);
	}

	public void datenEmpfangen(Anfrage anfrage) {
		
	  // TODO Auto-generated method stub
  }

	public JPanel getPanelContent() {
	  // TODO Auto-generated method stub
	  return this;
  }

	public JPopupMenu getPopupForUserlist(String selected_user) {
	  // TODO Auto-generated method stub
	  return null;
  }

	public void unload() {
	  // TODO Auto-generated method stub
	  
  }

	@Override
  public String getIFrameTitle() {
	  // TODO Auto-generated method stub
		return "Schach";
  }

	@Override
  public Dimension getPreferredIFrameSize() {
	  // TODO Auto-generated method stub
		return new Dimension(600, 600);
  }
}
 

Coldstorm

Aktives Mitglied
Danke für den Tipp, aber das sind doch nur Kleinigkeiten? Aber hier die verbesserte Version, zeigt wie
vorher aber halt immer noch nichts an...

Java:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.FileReader;
import java.io.IOException;

import javax.swing.JDesktopPane;
import javax.swing.JDialog;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import sfrankenberger.Logger;
import framework.Anfrage;
import framework.client.Plugin;

public class Chess extends JPanel implements Plugin{ //extends JPanel muss bleiben
	
	private Square mSelectedSquare;
	private ChessBoard mBoard;
	public JTextField mTextField;
	protected String mName = null;
	private JMenu mFile, mSuggestion, mHelp;
	private JMenuItem mNewGame, mResign, mQuit, mSuggestionOn, mSuggestionOff, mInstructions, mRules;
	private JPanel mPlayingField; 
	
	public Chess() {
		
		//mPlayingField = new JPanel(); 
		this.setLayout(new BorderLayout());
		JMenuBar mMenue = new JMenuBar();
		//mPlayingField.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		
		mBoard = new ChessBoard();
		mTextField = new JTextField();
		mTextField.setSize(100,100);
		mTextField.setEditable(false);
		mFile = new JMenu("Datei");
		mHelp = new JMenu("Hilfe");
		mSuggestion = new JMenu("Zugvorschlag");
		mNewGame = new JMenuItem("Neues Spiel");
		mResign = new JMenuItem("Aufgeben");
		mQuit = new JMenuItem("Beenden");
		mInstructions = new JMenuItem("Anleitung");
		mRules = new JMenuItem("Spielregeln");
		mSuggestionOn = new JMenuItem("Zugvorschlag an");
		mSuggestionOff = new JMenuItem("Zugvorschlag aus");
		mMenue.add(mFile);
		mMenue.add(mSuggestion);
		mMenue.add(mHelp);
		mFile.add(mNewGame);
		mFile.add(mResign);
		mFile.add(mQuit);
		mSuggestion.add(mSuggestionOn);
		mSuggestion.add(mSuggestionOff);
		mHelp.add(mInstructions);
		mHelp.add(mRules);
		

		ActionListener eSuggestionOn = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0)
			{}
		};
		mSuggestionOn.addActionListener(eSuggestionOn);
		
		
		ActionListener eSuggestionOff = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0)
			{}
		};
		mSuggestionOff.addActionListener(eSuggestionOff);
		
		
		ActionListener eNewGame = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
				//newGame();
				mBoard.getModel().takeStartPosition();
			}
		};
		mNewGame.addActionListener(eNewGame);
		
		ActionListener eResign = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
				//resign();
			}
		};
		mResign.addActionListener(eResign);
		
		ActionListener eQuit = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
				//getOptionMsg();
			}
		};
		mQuit.addActionListener(eQuit);
		
		ActionListener eInstructions = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
				//GameInstructionsLoad();
			}
		};
		mInstructions.addActionListener(eInstructions);
		
		ActionListener eGameRules = new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) 
			{
					//GameRulesLoad();
			}
		};
		mRules.addActionListener(eGameRules);
		
		this.setSize(600,600);
		this.add(mMenue, BorderLayout.NORTH);
		this.add(mBoard, BorderLayout.CENTER);
		this.add(mTextField, BorderLayout.SOUTH);
		this.setVisible(true);
		
		
		mBoard.addMouseListener(new MouseListener(){
			
			public void mouseClicked(MouseEvent evt) {
				if (evt.getSource() instanceof Square) {
					mSelectedSquare = (Square)evt.getSource();
					//System.out.println(selectedSquare);
				}
			}
			
			public void mouseEntered(MouseEvent evt) {
				if (evt.getSource() instanceof Square) {
					mSelectedSquare = (Square)evt.getSource();
					//if (selectedSquare.isOccupied())
					//	System.out.println(selectedSquare.getFigur().toString());
				}
			}
			
			public void mouseExited(MouseEvent evt) {}
			public void mousePressed(MouseEvent evt) {}
			public void mouseReleased(MouseEvent evt) {}
		});
	}
	
	public static void main(String[]args) 
	{
		new Chess();
	}

	public void datenEmpfangen(Anfrage anfrage) {
		
	  // TODO Auto-generated method stub
  }

	public JPanel getPanelContent() {
	  // TODO Auto-generated method stub
	  return this;
  }

	public JPopupMenu getPopupForUserlist(String selected_user) {
	  // TODO Auto-generated method stub
	  return null;
  }

	public void unload() {
	  // TODO Auto-generated method stub
	  
  }

	@Override
  public String getIFrameTitle() {
	  // TODO Auto-generated method stub
		return "Schach";
  }

	@Override
  public Dimension getPreferredIFrameSize() {
	  // TODO Auto-generated method stub
		return new Dimension(600, 600);
  }
}
 

TR

Aktives Mitglied
Kleinigkeit hier, kleinigkeit da, das kann dan schon zum Problem führen!

in der main Methode, erzeugst du dein Panel, mehr nicht! Du brauchst schon ein JFrame etc. auf das du dieses Panel packst, damit es erzeugt wird (zum testen sonst wird es ja von dem anderen System aufgerufen wozu du ja das Plugin implementierst!)!

z.B.
Java:
public static void main(String[]args) 
{
	Chess chees = new Chess();

	JFrame frame = new JFrame();
	
	frame.add(chees);
	frame.setPreferredSize(new Dimension(600,600));
	frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	frame.pack();
	frame.setVisible(true);
}
 

Coldstorm

Aktives Mitglied
Ich schreibe das hier rein, weil ich dein Profil nicht aufrufen kann, nur das von Michael(ohne …).
Du bist ja eigentlich der einzige, der sich mit deinem/meinem Code auskennt, deshalb wollte ich dich vor allem dich fragen. Weißt du eine möglichst einfache Möglichkeit, wie ich das Schach setzen(nicht Mattsetzen) zum Laufen bringe. Sollte in dieser Methode sein oder? Irgendwie mit
Java:
this.possibleTarget.remove(address);
Hier mal die Methode, vielleicht haben die anderen ja auch einen Vorschlag…
Java:
private void collectPossibleTargets() {
		this.resetTargets();
		AbstractChessPiece cPiece = this.activeSquare.getFigur();
		Vector moves = cPiece.getMoves();
		System.out.println("Anzahl der Züge" + moves.size());
		PieceMove m;
		Address address;
		Square target;
	
		//ermittelt alle möglichen Züge all
		for (int i=0; i<moves.size(); i++) {
			m = (PieceMove)moves.get(i);
			address = m.getMoveResult(this.activeSquare.getAddress());
			if (address.isValid()) {
				target = content[address.getRow()][address.getColumn()];
				if (!target.isOccupied())
					this.possibleTarget.add(address);
				else if (target.getFigur().isOpponent(cPiece) && !(cPiece instanceof Pawn))
					this.possibleTarget.add(address);
			}
		}
		if (cPiece instanceof Pawn) { //Bauer schlägt Figuren auf eine besondere Art
			moves = cPiece.getCaptureMoves();
			for (int i=0; i<moves.size(); i++) {
				m = (PieceMove)moves.get(i);
				address = m.getMoveResult(this.activeSquare.getAddress());
				if (address.isValid()) {
					target = content[address.getRow()][address.getColumn()];
					if (target.isOccupied() && target.getFigur().isOpponent(cPiece)){
						this.possibleTarget.add(address);
					}
				}
			}
			address = this.activeSquare.getAddress().copy();
			address.move(0, -1);
			this.checkForEnPassent(address);
			address = this.activeSquare.getAddress().copy();
			address.move(0, 1);
			this.checkForEnPassent(address);
		}
		//System.out.println(Arrays.toString(this.possibleTarget.toArray()));
		
		//entfernt alle ungültigen Züge, damit die Figuren nicht springen können
		if (!cPiece.canJump()) {
			Address start;
			for(int i=this.possibleTarget.size()-1; i>=0; i--) {
				address = (Address)this.possibleTarget.get(i);
				start = this.activeSquare.getAddress().copy();
				
				//System.out.println("**** " + start + " --> " + address);
				
				int rdelta = 0;
				if (address.getRow() < start.getRow())
					rdelta = -1;
				else if (address.getRow() > start.getRow())
					rdelta = 1;
				
				int cdelta = 0;
				if (address.getColumn() < start.getColumn())
					cdelta = -1;
				if (address.getColumn() > start.getColumn())
					cdelta = 1;
				
				start.move(rdelta, cdelta);
				while(!start.equals(address) && start.isValid()) {
					//System.out.println(start + " --> " + address);
					target = content[start.getRow()][start.getColumn()];
					if (target.isOccupied()) {
						this.possibleTarget.remove(address);
					}
					start.move(rdelta, cdelta);
				}
			}
		}
		
		if (this.markTargets) { //if the high light option is set valid moves are marked on the board
			for(int i=0; i<this.possibleTarget.size(); i++) {
				address = (Address)this.possibleTarget.get(i);
				content[address.getRow()][address.getColumn()].markAsPossibleTarget(true);
			}
		}
		System.out.println("Mögliche Züge  : " + Arrays.toString(this.possibleTarget.toArray()));
		System.out.println("En passant Ziele: " + Arrays.toString(this.enPassant.toArray()));
	}
 

Coldstorm

Aktives Mitglied
Ob ein König Schach gesetzt wurde, und dann eben nur noch das Wegziehen des Königs möglich ist,
das schmeißen der drohenen Figur oder eine Figur zwischen die Angriffslinien setzen.
 

Michael...

Top Contributor
eine konkrete Lösung kann ich Dir jetzt nicht bieten, aber:
In possibleTarget werden ja zunächst mal alle möglichen Felder (Figur steht auf einem leeren Schachbrett) der aktuell selektierten Figur gesammelt, anschliessend werden nicht erreichbare Felder (Weg durch andere Figuren verdeckt) mit possibleTarget.remove(address); entfernt.
Jetzt könntest Du für verbleibenden Adressen prüfen, ob ein Zug der angewählten Figur dorthin den eigenen König ins Schach stellen würde. Wenn ja, dann ebenfalls weg mit der Adresse.

Hierzu würde es sich anbieten eine Methode zu entwickeln, mit der man allgemein feststellen kann, ob der weisse oder schwarze König im Schach steht. Das dürfte aber nicht unbeding trivial werden.
 

Michael...

Top Contributor
Man muss halt mal drüber nachdenken.

Prinzipiell musst Du Dir nur bewusst machen, wie Du beim Schach vorgehst.
So grob skizziert:
- wähle eine Figur, die Du eventuell ziehen möchtest
- überlege wohin kann sie ziehen
- analysiere jeden möglichen Zug auf seine Konsequenzen
- ...

bis zu Schritt zwei ist das ganze ja schon umgesetzt --> Du hast eine Liste möglicher Zuge für eine ausgewählte Figur
Jetzt arbeitest Du die Liste einfach ab:
- führe geistig die erste Zugmöglichkeit durch
- schau Dir jede der gegnerischen Figuren an:
- welche möglichen Züge wären ihrerseits nach Deinem Spielzug möglich?
- könnte sie Deinen König schmeissen?
ja --> dann wäre Dein erster Zug ungültig --> raus damit aus der Liste
- führe geistig die zweite Zugmöglichkeit durch
usw...

Das wären jetzt mal so meine auf die Schnelle gemachten Überlegungen
 

Coldstorm

Aktives Mitglied
Dankeschön...
So in etwa habe ich es mir auch gedacht. Die Gedanken kann ich schon sammeln in der Theorie,
bei mir gibt es halt vor allem Probleme bei der Umsetzung. Teilweise weiß ich gar nicht, wo ich anfangen soll...
 

Coldstorm

Aktives Mitglied
Ich komme leider nicht weiter, hat wer Interesse mit mir noch 2-3 Methoden zu programmieren?
Bin am verzweifeln, allerdings ist das für mich sehr wichtig. Es geht hauptsächlich "nur" um das Schach setzen generell und das Schachmatt. Bin um jede Hilfe dankbar, Bezahlung auch möglich, wenn es nicht anders geht. Denn Code schicke ich dann, wenn sich jemand meldet oder ich kann ihn hochladen, wenn du nix dagegen hast Michael.. ?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S JInternalFrame in Applets? Java Basics - Anfänger-Themen 9
S JInternalFrame in JInternalFrame - Verhalten Java Basics - Anfänger-Themen 2
StrikeTom JColorchooser auf JInternalframe Java Basics - Anfänger-Themen 4
H JInternalFrame Java Basics - Anfänger-Themen 8
G Fehler beim erneuten Öffnen von JInternalFrame Java Basics - Anfänger-Themen 7
G Rückgabewert bei JInternalFrame ? Java Basics - Anfänger-Themen 2
G JInternalFrame FensterInFenster-resizable ?Springt zurück! Java Basics - Anfänger-Themen 4
J JInternalFrame überlappen Java Basics - Anfänger-Themen 33
R JInternalFrame fixieren Java Basics - Anfänger-Themen 4
G Von einem JinternalFrame auf ein anderes zugreifen! Java Basics - Anfänger-Themen 18
M Probleme bei JInternalFrame Java Basics - Anfänger-Themen 2
J JInternalFrame: Warum funktioniert das hier nicht? Java Basics - Anfänger-Themen 11
G mehrfaches Öffnen eines JInternalFrame verhindern Java Basics - Anfänger-Themen 11
S JInternalFrame aus anderer Klasse richtig implementieren? Java Basics - Anfänger-Themen 4
S Auf JInternalFrame warten? Java Basics - Anfänger-Themen 2
V Prüfen ob JInternalFrame bereits geöffnet Java Basics - Anfänger-Themen 4
richis-fragen Optisch JPanel BorderLayout vertikaler Rand dicker als horizontaler Rand Java Basics - Anfänger-Themen 4
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
J JSON mit einem JPanel Java Basics - Anfänger-Themen 3
J Ein mit UI-Designer erstelltes JPanel einblenden Java Basics - Anfänger-Themen 0
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
J Beim Start des Programms zB. eine Linie in JPanel ausgeben Java Basics - Anfänger-Themen 4
C mehrere JPanel in ein JFrame bringen Java Basics - Anfänger-Themen 9
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
Zeppi JPanel responsive Grid Java Basics - Anfänger-Themen 0
J JPanel in JScrollPanel Java Basics - Anfänger-Themen 4
Elyt JPanel als HintergrundBild Java Basics - Anfänger-Themen 7
W 2 JPanel in einem JFrame Java Basics - Anfänger-Themen 4
B Wie kann man an ein JPanel eine Scrollbar anheften? Java Basics - Anfänger-Themen 8
O Swing JPanel Java Basics - Anfänger-Themen 4
CptK Klassen JPanel nach Ablauf der Spielzeit neuladen Java Basics - Anfänger-Themen 2
S JPanel wird nicht angezeigt Java Basics - Anfänger-Themen 1
D Animation JPanel Java Basics - Anfänger-Themen 1
M JLabels "verrutschen" beim übergeben von JPanel Java Basics - Anfänger-Themen 2
D Auf angeklicktes JPanel zugreifen Java Basics - Anfänger-Themen 5
D JPanel mehrere Formen zeichnen Java Basics - Anfänger-Themen 5
D JPanel passt die Größe nicht an Java Basics - Anfänger-Themen 22
Y Webinhalt JPanel Java Basics - Anfänger-Themen 6
D Erste Schritte JPanel verschiebt Fenster via setVisible Java Basics - Anfänger-Themen 5
Dechasa Interface JFrame mit mehreren Übereinander liegenden JPanel Java Basics - Anfänger-Themen 5
S JPanel variablenabhängig erstellen Java Basics - Anfänger-Themen 13
J Methoden Dinge auf einem JPanel paltzieren Java Basics - Anfänger-Themen 1
Z JPanel wird zweimal hinterinander gezeichnet.. Wieso? Java Basics - Anfänger-Themen 4
F JFrame resize verschiebt JPanel Java Basics - Anfänger-Themen 3
A altes JPanel entfernen und neues öffnen Java Basics - Anfänger-Themen 5
I A0-Format in jpanel anzeigen Java Basics - Anfänger-Themen 1
R NullPointerException wegen JPanel oder doch nicht ? Java Basics - Anfänger-Themen 7
J Probleme mit eigenem JPanel (IDE Eclipse) Java Basics - Anfänger-Themen 4
S JPanel wird versetzt auf JFrame gelegt Java Basics - Anfänger-Themen 2
V jab ich eclipse verrückt gemacht :D ? array Jpanel, Jlabel Grafik Fehler / Frage Java Basics - Anfänger-Themen 5
R Focus auf JPanel im Thread Java Basics - Anfänger-Themen 9
I Problem mit JPanel Java Basics - Anfänger-Themen 0
B JPanel ändert die Hintergrundfarbe nicht Java Basics - Anfänger-Themen 2
F Threads funktionieren auf JPanel nicht Java Basics - Anfänger-Themen 1
C JPanel in MessageDialog Java Basics - Anfänger-Themen 1
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
S Inhalt von JPanel erst nach Resize sichtbar Java Basics - Anfänger-Themen 2
M Listener einerm JPanel hinzufuegen Java Basics - Anfänger-Themen 3
gamebreiti Methoden JPanel nach clearAll() und add neu zeichnen Java Basics - Anfänger-Themen 1
S vom JPanel aus durch Mouselistener Internet aufrufen Java Basics - Anfänger-Themen 6
Z JPanel bleibt leer Java Basics - Anfänger-Themen 2
E Bild per Verzeichnis/JFileChooser auf JPanel laden Java Basics - Anfänger-Themen 13
Q JPanel Java Basics - Anfänger-Themen 2
K Erste Schritte jpanel in einer klasse auslagern Java Basics - Anfänger-Themen 3
I Anfängerfrage JPanel repaint() Java Basics - Anfänger-Themen 6
N String auf JPanel bewegen Java Basics - Anfänger-Themen 6
K Erste Schritte Jframe Im Jpanel Java Basics - Anfänger-Themen 4
S Layout mit JPanel in JScrollPanel funktioniert nicht Java Basics - Anfänger-Themen 3
S JPanel drucken -> PrinterException Java Basics - Anfänger-Themen 2
B JPanel -JTable Java Basics - Anfänger-Themen 2
H JPanel Hintergrund transparent setzen? Java Basics - Anfänger-Themen 10
A Input/Output Hashmap in einem JPanel via JList anzeigen Java Basics - Anfänger-Themen 8
L zoomen aus jpanel Java Basics - Anfänger-Themen 7
P Bekomme in meinen JPanel nur eine JComponente angezeigt Java Basics - Anfänger-Themen 7
A Methoden repaint() zeichnet JPanel falsch Java Basics - Anfänger-Themen 3
R JFrame über einen JPanel Java Basics - Anfänger-Themen 5
I Veränderungen am JPanel vom JDialog aus Java Basics - Anfänger-Themen 6
F JPanel zu klein Java Basics - Anfänger-Themen 5
D GUI - Objekte in JPanel nach oben schieben Java Basics - Anfänger-Themen 2
S JPanel wird nicht eingefügt Java Basics - Anfänger-Themen 3
P Netbeans Platform - JLabel und JPanel setLocation Problem Java Basics - Anfänger-Themen 2
Kenan89 JPanel mit JTable Java Basics - Anfänger-Themen 9
I JPanel in JPanel Java Basics - Anfänger-Themen 2
A Zugriff auf Komponente innerhalb einer JPanel Java Basics - Anfänger-Themen 8
J Auf einem JPanel ein JFrame platzieren Java Basics - Anfänger-Themen 10
S JPanel anzeige Java Basics - Anfänger-Themen 2
propra Wie mache ich einem JPanel mein bereits instanziertes Model bekannt Java Basics - Anfänger-Themen 9
T Zugreifen auf JPanel Java Basics - Anfänger-Themen 4
K JPanel auslagern Java Basics - Anfänger-Themen 9
J Paint Methode von JPanel aufrufen Java Basics - Anfänger-Themen 15
T Tastendruck simulieren in JPanel Java Basics - Anfänger-Themen 3
P JPanel in JTable einfügen Java Basics - Anfänger-Themen 23
E Erste Schritte Objekte werden in JPanel angedockt und maximiert Java Basics - Anfänger-Themen 7
M Componenten auf JPanel anzeigen Java Basics - Anfänger-Themen 2
F JPanel als JPG - weisse Fläche Java Basics - Anfänger-Themen 9
L Image laden und auf jPanel ausgeben Java Basics - Anfänger-Themen 7
M JLabel auf JPanel positionieren Java Basics - Anfänger-Themen 8
M Verständnisfrage zu JPanel Java Basics - Anfänger-Themen 3
M MouseListener funkioniert auf JPanel nicht Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben