"Quadrat oder Rechteck" - Check

Scratchy

Mitglied
Hallo,

ich habe es mit eurer Hilfe geschafft, ein Frame zu erzeuge, wo sich ein Viereck mit Tastatureingaben bewegen lässt. Das Problem ist, dass sich das Label, welches anzeigen soll, ob das Viereck ein Quadrat oder Rechteck ist, sich nicht durch ein anderes Label ersetzen lässt ... ???:L

Das hört sich jetzt vielleicht etwas verwirrend an... ;)


Hier ist der Code:
Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class OwnGraphic extends JPanel implements KeyListener{
	
	private JFrame f;
	private JLabel label;
	private JLabel label1;
	public int a = 100;
	public int b = 100;
	
	public OwnGraphic(){
		f = new JFrame("Bewegung");
		f.setSize(500,500);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.add(this);
		label = new JLabel("Rechteck");
		label1 = new JLabel("Quadrat");
		f.add(label, BorderLayout.SOUTH);
		f.setBackground(Color.orange);
		f.addKeyListener(this);
		f.setVisible(true);
	}
	public void paint(Graphics g){
		g.fillRect(/*a+*/60,/*b+*/60,a+50,b+50);
		
	}
	
	
	
	
	public static void main(String[] args) {
		new OwnGraphic();
	}
	@Override
	public void keyPressed(KeyEvent e) {
		if(e.getKeyCode() == KeyEvent.VK_UP){
			System.out.println("Nach oben bewegen-Taste gedrückt!");
			System.out.println("B-Koordinate:" + b);
			System.out.println("A-Koordinate:" + a);
			up(a, b);
			f.repaint();
		}if(e.getKeyCode() == KeyEvent.VK_DOWN){
			System.out.println("Nach unten-Taste gedrückt!");
			System.out.println("B-Koordinate:" + b);
			System.out.println("A-Koordinate:" + a);
			down(a, b);
			f.repaint();
		}if(e.getKeyCode() == KeyEvent.VK_LEFT){
			System.out.println("Nach links-Taste gedrückt!");
			System.out.println("B-Koordinate:" + b);
			System.out.println("A-Koordinate:" + a);
			left(a, b);
			f.repaint();
		}if(e.getKeyCode() == KeyEvent.VK_RIGHT){
			System.out.println("Nach rechts-Taste gedrückt!");
			System.out.println("B-Koordinate:" + b);
			System.out.println("A-Koordinate:" + a);
			right(a, b);
			f.repaint();
		}
		
	}
	public void up(int a, int b) {
		this.b = b-2;
		if(a == b){
			f.remove(label);
			f.add(label1, BorderLayout.SOUTH);
			f.repaint();
		}if(this.a != this.b){
			f.remove(label1);
			f.add(label, BorderLayout.SOUTH);
			f.repaint();
		}
	}
	public void down(int a, int b) {
		this.b = b+2;
		if(a == b){
			f.remove(label);
			f.add(label1, BorderLayout.SOUTH);
			f.repaint();
		}if(a != b){
			f.remove(label1);
			f.add(label, BorderLayout.SOUTH);
			f.repaint();
		}
	}
	public void left(int a, int b) {
		this.a = a-2;
		if(a == b){
			f.remove(label);
			f.add(label1, BorderLayout.SOUTH);
			f.repaint();
		}if(a != b){
			f.remove(label1);
			f.add(label, BorderLayout.SOUTH);
			f.repaint();
		}
	}
	public void right(int a, int b) {
		this.a = a+2;
		if(a == b){
			f.remove(label);
			f.add(label1, BorderLayout.SOUTH);
			f.repaint();
		}if(a != b){
			f.remove(label1);
			f.add(label, BorderLayout.SOUTH);
			f.repaint();
		}
	}
	
	
	@Override
	public void keyReleased(KeyEvent e) {
		
	}
	@Override
	public void keyTyped(KeyEvent e) {
		
	}
}
 

FXL

Mitglied
Hi,

ich verstehe dein Problem nicht direkt, bzw. weiß nicht was du genau machen willst.

Aber ich deute es mal:
Du willst, dass in einem Label "label" ein Text angezeigt wird, ob es ein Rechteck oder ein Qudarat ist.

Warum benutzt du zwei Labels dafür. Du kannst doch einfach

Java:
label.setText("Qudarat")
bzw.
Java:
label.setText("Reckteck")

benutzten.

Somit fällt das remove und add weg!

Gruß
 
Zuletzt bearbeitet:

Lodoss

Aktives Mitglied
du kannst den text vom label auch einfach ändern, du brauchst nicht für jeden "Text" ein neues label machen.

Java:
package labelChange;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;

public class ChangeLabelTextDialog extends JDialog
{
	JLabel changeLabel = new JLabel("A");
	
	public ChangeLabelTextDialog()
	{
		// initialize the dialog with a label and a button
		JButton btn = new JButton("Label Ändern");
		btn.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0)
			{
				changeLabelAction();
			}
		});
		
		this.setLayout(new BorderLayout());
		
		this.add(changeLabel, BorderLayout.CENTER);
		this.add(btn, 		  BorderLayout.SOUTH);
		
		this.setSize(new Dimension(100,100));
		this.setVisible(true);
	}
	
	public static void main(String[] args)
	{
		new ChangeLabelTextDialog();
	}
	
	/**
	 * change the label of "changeLabel" variable
	 * from A to B and from B to A
	 */
	private void changeLabelAction()
	{
		if (changeLabel.getText().equals("A"))
		{
			changeLabel.setText("B");
			return;
		}
		
		if (changeLabel.getText().equals("B"))
		{
			changeLabel.setText("A");
			return;
		}
	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Quadrat, Rechteck zeichnen AWT, Swing, JavaFX & SWT 3
S Quadrat auf Frame zeichnen AWT, Swing, JavaFX & SWT 2
E Einfaches Quadrat zeichnen AWT, Swing, JavaFX & SWT 6
Jats 2D-Grafik Quadrat/Dreieck um Mittelpunkt drehen AWT, Swing, JavaFX & SWT 10
berserkerdq2 Kann ich ein Rechteck mittig im Fenster halten, egal wie ich die Bildschirmgröße verändere? AWT, Swing, JavaFX & SWT 3
berserkerdq2 Mein Rechteck hat 4 Seiten, ich soll je nach dem, welche Seite berührt wurde, etwas ausführen, wie prüfe ich das? AWT, Swing, JavaFX & SWT 12
B AWT Rechteck abnehmen lassen AWT, Swing, JavaFX & SWT 9
N Mit KeyListener ein rechteck zeichnen AWT, Swing, JavaFX & SWT 9
E Button verschwindet nachdem ein Rechteck gezeichnet wurde AWT, Swing, JavaFX & SWT 5
T Java Swing - kleines Rechteck unter dem cursor AWT, Swing, JavaFX & SWT 5
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
L Swing Ein Rechteck in ein Grid Zeichnen AWT, Swing, JavaFX & SWT 5
F Java Swing Rechteck in JPanel zeichnen AWT, Swing, JavaFX & SWT 7
F 2D-Grafik Gestricheltes Rechteck AWT, Swing, JavaFX & SWT 1
Z Frame mit Rechteck! AWT, Swing, JavaFX & SWT 16
T Problem beim Zeichnen von Rechteck AWT, Swing, JavaFX & SWT 3
S Warum wird dieses Rechteck nicht korrekt gemalt? AWT, Swing, JavaFX & SWT 7
C Rechteck drehen AWT, Swing, JavaFX & SWT 1
D 2D-Grafik Rechteck befindet sich unter dem Rahmen des JFrame. AWT, Swing, JavaFX & SWT 1
M JavaFX Rechteck mit MausListener AWT, Swing, JavaFX & SWT 3
B Rechteck Mit Hilfe Von Timeline, KeyFrames animieren AWT, Swing, JavaFX & SWT 3
I Rechteck eines Graphics eines JPanels in einem anderen JPanel anzeigen AWT, Swing, JavaFX & SWT 7
T transparent geht nicht (btw: rechteck) AWT, Swing, JavaFX & SWT 13
J SWT Rechteck Füllfarbe wird bei Action falsch gefüll AWT, Swing, JavaFX & SWT 2
H Rechteck via Mouse bewegen AWT, Swing, JavaFX & SWT 2
A Rechteck zeichen AWT, Swing, JavaFX & SWT 4
C Auto fahren - Rechteck JFrame AWT, Swing, JavaFX & SWT 6
E Swing Rechteck und Kreise verschieben AWT, Swing, JavaFX & SWT 3
G Swing Rechteck uebermalen AWT, Swing, JavaFX & SWT 10
M Rechteck "umdrehen"/über die Kante drehen AWT, Swing, JavaFX & SWT 4
J 2D-Grafik Rechteck mit dickerem Rand zeichnen AWT, Swing, JavaFX & SWT 8
H Rechteck grafisch ausgeben (2D) AWT, Swing, JavaFX & SWT 3
G Rechteck mit Farbverlauf AWT, Swing, JavaFX & SWT 5
E Rechteck in JPanel Zeichnen AWT, Swing, JavaFX & SWT 6
G Rechteck zeichnen + "special features" :-) AWT, Swing, JavaFX & SWT 16
A Java Button mal nicht nur als rechteck AWT, Swing, JavaFX & SWT 16
B awt rechteck zeichnen AWT, Swing, JavaFX & SWT 3
R Rechteck drehen! AWT, Swing, JavaFX & SWT 4
K Problem mit JLabel, Rechteck, repaint() ;) AWT, Swing, JavaFX & SWT 2
J Auf Button - Druck soll Rechteck Farbe verändern AWT, Swing, JavaFX & SWT 8
M Rechteck zeichnen AWT, Swing, JavaFX & SWT 4
TheJavaKid Kreis, Rechteck, Linie. verschieben AWT, Swing, JavaFX & SWT 5
S Rechteck per Mouse aufziehen AWT, Swing, JavaFX & SWT 7
A Dreidimensionales Rechteck AWT, Swing, JavaFX & SWT 3
C Schräges Rechteck in Swing? AWT, Swing, JavaFX & SWT 7
G Rechteck normalisieren AWT, Swing, JavaFX & SWT 2
P Rechteck "verkehrt" herum zeichnen AWT, Swing, JavaFX & SWT 2
T Input-Check bei Textfeldern in Table AWT, Swing, JavaFX & SWT 5
S jdbc:odbc check connection AWT, Swing, JavaFX & SWT 2
V SWT Table mit SWT.CHECK AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben