problem mit repaint()-Methode[gelöst]

Status
Nicht offen für weitere Antworten.

mildi

Mitglied
Hi leute ich hab da ein problem mit der repaint() Methode...es wird aus irgendeinem Grund nicht ausgeführt und ich weis nicht warum. Ich hoffe jemand kann mir helfen. Ich sitze da schon zwei tage drann und weis nicht woran es liegt.

bei dem Programm handelt es sich um eine Ampelsteuerung. Ich stell die klassen betreit in denn das ablaufen sollte. die eine beinhaltet eine Threatklasse wo die repaint ausgeführt werden soll. und die paint klasse.

Ich hoffe jemand sieht meinen Fehler.

Klasse Ablauf wo die repaint() aufgefrufen wird.
Code:
/*
 * @(#)thread.java
 *
 *
 * @author 
 * @version 1.00 2008/5/15
 */
package src;
import java.awt.*;
public class Ablauf extends Canvas implements Runnable 
{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	Thread thread;
	boolean blink;



	boolean stopthread = false;
	public String Betriebsart;
	
	Amp_draw_RED red = new Amp_draw_RED();
	Amp_draw_YELLOW yel = new Amp_draw_YELLOW();
	Amp_draw_GREEN green = new Amp_draw_GREEN();
	
	public Ablauf () 
		{
			
			blink = false;
			thread = null;
		}
	public boolean retblk()
		{
		
			return blink;
		}
	public void setBetrArt(String art)
		{
			Betriebsart = art;
			System.out.println(Betriebsart);
						
		}
		
	public String Bt()
	{
		
		return Betriebsart;
	}
	
	
	public void start(String art)
		 {	
		 			
		 Betriebsart = art;		
			if (thread == null) 
				{
				
					 thread = new Thread(this, "hasu");
			 	     thread.start();
			 	}
		}
	
	public void run() 
		{
			
			if(Betriebsart == "Reset")
			{
				while (thread != null) 
					{
						if (stopthread)
						return;	
						yel.setBetreiabsart(Betriebsart);																
		   				 yel.repaint();	// ruft paint() auf
		   				 System.out.print("run()."+Betriebsart);
		   				try 
		    			{
		    				Thread.sleep(1000);	// 1s warten
		    			}
		   					 catch (InterruptedException e) {}
					}
			}
		}
	
				
	public void stop() // wird autom. erst nach Programmende aufgerufen
		{	
			stopthread = true;
			thread = null;
		}


}

und die klasse Amp_draw_Yellow wo die paint()-Methode definiert ist.

Code:
/**
 * @(#)Amp_draw_YELLOW.java
 *
 *
 * @author 
 * @version 1.00 2008/5/13
 */
package src;
import java.awt.*;

class Amp_draw_YELLOW extends Canvas 
{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	String Betriebsart = "Start";
	
	Ablauf thr1; 
	boolean blink;
	boolean  bli;
	
	
  	
  	public void paint (Graphics g) 
  	{
  		System.out.println("paint");
  		
  		g.setColor(Color.BLACK);
	   	g.fillRect(0,0,100,100);
	   	g.setColor(Color.GRAY);
		
	    
	   	
	   	if(Betriebsart=="Start")
	   	{				
	   		System.out.println("paint.start");				   
	   	  	g.setColor(Color.GRAY);
	      	
	   	}
	   if(Betriebsart=="Reset")
	   
	    {
	    			System.out.println("paint.reset");
	    			thr1 = new Ablauf();	
	   	  		    
   					blink = !thr1.retblk();
   					 System.out.print(blink);
   					 
  						if (blink)
  						{ 						
  							
							g.setColor (Color.GRAY);
						 }	
						else
						{
								g.setColor (Color.YELLOW);
							
						}
	    }
	   g.fillArc (0,0,100,100,0,360);
				

   }
   public void setBetreiabsart(String art)
   {
   		Betriebsart = art;
   		System.out.println(Betriebsart+"  test ");	
   }
 
}



MfG mildi[/code]
 

mildi

Mitglied
Es kommt nichts in der Konsolen... Das programm läuft normal ohne Fehlermeldungen aber ohne das die paint()-Methode erneute aufgerufen wird.

MfG mildi
 

André Uhres

Top Contributor
Bist du sicher, dass yel überhaupt auf der Oberfläche hinzugefügt wurde? Etwa so :
Code:
       Ablauf a = new Ablauf();
        Frame f = new Frame();
        f.add(a.yel);//<--------------------------------
        f.setVisible(true);
        a.start("Reset");
 

mildi

Mitglied
ja hab noch ne klasse Amp_gui...wo alles sichtbar gemacht wird
Code:
/**
 * @(#)Amp_gui.java
 *
 *
 * @author 
 * @version 1.00 2008/5/13
 */

package src;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;


public class Amp_gui extends JFrame implements ItemListener, ActionListener
{


	
	private static final long serialVersionUID = 1L;
	private	JLabel	label_betrart;
	private	JLabel	label_zeit;
	private	JLabel	label_zwischeZu;
	private	JLabel	label_redGreen;
	private	JLabel	label_kuezelS1;	
	private	JLabel	label_kuezelS2;
	private JLabel	label_leer;
	private  JRadioButton	radioButton_manu;	
	private  JRadioButton	radioButton_auto;	
	private	JButton	button_Reset;
	private	JButton	button_Start;	
	private	JButton	button_Single;	
	private JPanel flaeche_oben;

	private JTextField textF1;	 
	private JTextField textF2;
	private Amp_draw_RED blinkRed;
	private Amp_draw_YELLOW blinkYellow;
	
	private Amp_draw_GREEN blinkGreen;
	private Ablauf startThr;

		
		
		
    public Amp_gui(String name) 
    {
    		super (name);
    	
    //		
    // erzeugen der Bedienelemente
    //		
    	label_betrart = new JLabel("Betriebsart");
		label_zeit =	new JLabel("Zeiten");
		label_redGreen = new JLabel("Rot oder grün: ");
		label_redGreen.setHorizontalTextPosition(0);
		label_zwischeZu = new JLabel("Zwischenzustand: ");
		label_zwischeZu.setHorizontalTextPosition(0);		
		label_kuezelS1 = new JLabel("s");
		label_kuezelS2 = new JLabel("s");
		label_leer = new JLabel();
		radioButton_manu = new JRadioButton("manuell");
		radioButton_auto = new JRadioButton("automatisch");
		ButtonGroup bgroup = new ButtonGroup();
		
		button_Reset = new JButton("Reset (blinken) ");
		button_Start = new JButton("Start (automatisch)");
		button_Single = new JButton("Singel Step ");
		textF1 =new JTextField();
		textF2 =new JTextField();
	
	//Ende 


    //
    //Anfang Standewerte für Fenster festlegen
    //
    		
			 setSize(270,330);
              setLocation(200,300);
          getContentPane().setLayout((new BorderLayout()));
             // setLayout(null);
              addWindowListener(new WindowAdapter() {
	        public void windowClosing(WindowEvent event) {
	        System.exit(0);
	      }
	    });
	    
	    
	    
    //           
    // Anfang  der Bedienoberfläche
    //           
              	flaeche_oben = new JPanel();
               	flaeche_oben.setLayout( null );
               	
           //
           //Oberer Teil der Bedienfläche mit Radiobuttons
               	
              	label_betrart.setBounds(0,0,160,30);
              	flaeche_oben.add(label_betrart);
               	radioButton_manu.setBounds(0,30,160,30);
              	flaeche_oben.add(radioButton_manu);
             	radioButton_auto.setBounds(0,60,160,30);
            	flaeche_oben.add(radioButton_auto);
              	radioButton_manu.addItemListener(this);
              	radioButton_auto.addItemListener(this);
              	radioButton_manu.doClick();
              	bgroup.add(radioButton_manu);
              	bgroup.add(radioButton_auto);
             
              	//addItemListener (ItemListener);
            //
            //Bereich mit den Buttons
              	
   				button_Reset.setBounds(0,90,160,30);
   				button_Reset.addActionListener(this);
   				flaeche_oben.add(button_Reset);
   		  		button_Start.setBounds(0,130,160,30);
   		  		button_Start.addActionListener(this);		
              	flaeche_oben.add(button_Start);
              	button_Single.setBounds(0,170,160,30);
              	button_Single.addActionListener(this);
              	flaeche_oben.add(button_Single);
              	label_leer.setBounds(0,200,160,40);
              	
              	flaeche_oben.add(label_leer);
              	label_zeit.setBounds(0,240,160,20);
              
             //
             //Unterer Teil der Bedienoberfläche mit den Zeitauswahl
              	
              	flaeche_oben.add(label_zeit);
              	label_redGreen.setBounds(0,260,120,20);
   				flaeche_oben.add(label_redGreen);
   				textF1.setBounds(125,260,25,20);
   				flaeche_oben.add(textF1);
   				label_kuezelS1.setBounds(150,260,10,20);
   				flaeche_oben.add(label_kuezelS1);
   				label_zwischeZu.setBounds(0,280,120,20);
   				flaeche_oben.add(label_zwischeZu);
   				textF2.setBounds(125,280,25,20);
   				flaeche_oben.add(textF2);
   				label_kuezelS2.setBounds(150,280,10,20);
   				flaeche_oben.add (label_kuezelS2);
   				
   				
    //
    //Ende  Bedienoberfläche
    //				
    
    //
    //Anfang der Ampelleuchten
    //
  
   				blinkRed = new Amp_draw_RED();
   				blinkYellow = new Amp_draw_YELLOW();
   				
   				blinkGreen = new Amp_draw_GREEN();
   				blinkRed.setBounds(160,0,100,100);
   				blinkYellow.setBounds(160,100,100,100);
   				blinkGreen.setBounds(160,200,100,100); 
   				flaeche_oben.add(blinkRed);
   				flaeche_oben.add(blinkYellow);  	
   				flaeche_oben.add(blinkGreen); 		
   					
   				getContentPane().add(flaeche_oben, BorderLayout.CENTER);			
  
    //
    //Ende der Ampelleuchten
    //
   
    
    
     //
     //Fenster sichtbar machen
     //           
          setVisible(true);
	}
		
		
	//
	// Item listener für die RadioButtons zum aktiviere und deaktiveren der Buttons
	//

				public void itemStateChanged(ItemEvent e) 
					{ 
							
						if (radioButton_manu.isSelected())
							{
								 button_Single.setEnabled(true);
								 button_Start.setEnabled(false);
								 textF1.setEnabled(false);
							 	 textF2.setEnabled(false);
							}
						if (radioButton_auto.isSelected())
							{
								button_Single.setEnabled(false);
								button_Start.setEnabled(true);
								textF1.setEnabled(true);
								textF2.setEnabled(true);
							}	
					}
  	// Eende ItemListener
  	
  	
  	//
  	//ActionListner für die Buttons
  	//	
  
  	public void actionPerformed (ActionEvent e)
    	{
    		if(e.getSource() == button_Reset)
    			{
    			startThr = new Ablauf()	;
    			startThr.start("Reset");
    			
    			
    			}
    			if(e.getSource() == button_Start)
    			{
    					startThr = new Ablauf();
    					startThr.setBetrArt("start");
    					System.out.println(startThr.Bt());
    				
    			}
    			if(e.getSource() == button_Single)
    			{
    				
    			}
    		
    	}
    
}
 

André Uhres

Top Contributor
mildi hat gesagt.:
Ich versteh nicht wie und warum ich yel aus der class ablauf zum frame adden soll?
Wegen
yel.repaint(); // ruft paint() auf
Wie, das hab ich ja schon gezeigt:
f.add(a.yel);//<--------------------------------
Oder so:
f.add(a.getYel());//<----- mit Getter
 

mildi

Mitglied
Danke für die Hilfe...es geht jetzt.
Dafür hab ich jetzt ein weiters Problem..Werde aber neuen threat aufmachen ;-)

MfG mildi
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P EDT Problem? Kein Aufruf der repaint Methode AWT, Swing, JavaFX & SWT 6
A Problem: repaint() - Schleife AWT, Swing, JavaFX & SWT 3
B Swing Repaint Problem - mal wieder AWT, Swing, JavaFX & SWT 5
Ernesto95 AnimationLoop - Problem bei Aufruf von repaint AWT, Swing, JavaFX & SWT 6
kodela Problem mit repaint() AWT, Swing, JavaFX & SWT 3
H repaint()-Problem - 50% CPU-Auslastung AWT, Swing, JavaFX & SWT 4
T repaint() Problem AWT, Swing, JavaFX & SWT 2
K Jpanel repaint problem (Fullscreen) AWT, Swing, JavaFX & SWT 5
E AWT Problem mit Repaint (in Loop oder Timer) AWT, Swing, JavaFX & SWT 3
J Swing Verständnis-Problem repaint(int x,int y,int width,int height) AWT, Swing, JavaFX & SWT 3
J [gelöst] repaint problem AWT, Swing, JavaFX & SWT 2
G problem mit threads/repaint ! AWT, Swing, JavaFX & SWT 2
D Problem mit Netbeans und repaint() AWT, Swing, JavaFX & SWT 5
E Problem mit repaint() AWT, Swing, JavaFX & SWT 11
K Problem mit JLabel, Rechteck, repaint() ;) AWT, Swing, JavaFX & SWT 2
K Problem repaint()->paintComponent AWT, Swing, JavaFX & SWT 9
M Problem bei Repaint von Panels AWT, Swing, JavaFX & SWT 2
L Swing repaint problem AWT, Swing, JavaFX & SWT 7
B Problem bei repaint AWT, Swing, JavaFX & SWT 5
V repaint problem AWT, Swing, JavaFX & SWT 12
A Repaint-Problem AWT, Swing, JavaFX & SWT 4
S repaint()-Problem AWT, Swing, JavaFX & SWT 6
S Repaint()-Problem im GBL? AWT, Swing, JavaFX & SWT 5
S paint/repaint problem mit awt/swing? AWT, Swing, JavaFX & SWT 2
L repaint()-Problem AWT, Swing, JavaFX & SWT 18
Juelin Problem mit TextField.requestFocus(); AWT, Swing, JavaFX & SWT 17
Juelin Problem beim Laden Controller AWT, Swing, JavaFX & SWT 2
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
H 2D-Grafik Problem mit Paint AWT, Swing, JavaFX & SWT 1
S Layout - Problem AWT, Swing, JavaFX & SWT 1
Tassos JavaFX/Problem mit der Maussteuerung in Stackpane AWT, Swing, JavaFX & SWT 7
sserio Java Fx - Problem AWT, Swing, JavaFX & SWT 3
A Problem Spiel auf Panel der GUI zu bringen AWT, Swing, JavaFX & SWT 1
A JavaFX Controller Problem AWT, Swing, JavaFX & SWT 1
TheWhiteShadow JavaFX ListView Problem beim Entfernen von Elementen AWT, Swing, JavaFX & SWT 1
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3
Umb3rus JavaFX Problem mit PropertyValueFactory: can not read from unreadable property AWT, Swing, JavaFX & SWT 1
T Problem mit paintComponent() AWT, Swing, JavaFX & SWT 17
AmsananKING Java Menü-Problem AWT, Swing, JavaFX & SWT 1
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
G Instance OF Problem AWT, Swing, JavaFX & SWT 9
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5
M Problem mit dem Anzeigen von Frames im Vordergrund AWT, Swing, JavaFX & SWT 5
Badebay Problem mit JButton AWT, Swing, JavaFX & SWT 2
newJavaGeek Grid-Layout problem AWT, Swing, JavaFX & SWT 7
J JavaFX Löschen im Tabelview macht Problem AWT, Swing, JavaFX & SWT 15
JavaTalksToMe JavaFx ExekutorService Problem AWT, Swing, JavaFX & SWT 2
Zrebna Problem bei Eventhandling (Value soll nach jedem erneutem Klick gelöscht werden) AWT, Swing, JavaFX & SWT 4
B Problem mit JavaFX AWT, Swing, JavaFX & SWT 5
J css Problem AWT, Swing, JavaFX & SWT 5
B JavaFX habe mein Problem fett markiert AWT, Swing, JavaFX & SWT 2
A Swing Filter-Problem AWT, Swing, JavaFX & SWT 1
temi JavaFX Problem mit IntelliJ und JavaFx 11 unter XUbuntu AWT, Swing, JavaFX & SWT 3
L Java FX Problem mit Ubuntu 18 und JavaFx AWT, Swing, JavaFX & SWT 27
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
kodela Swing Problem mit Warten-Dialog AWT, Swing, JavaFX & SWT 16
B JavaFx Scene Builder Problem AWT, Swing, JavaFX & SWT 2
B [Problem] Java öffnet Word-Datein nicht AWT, Swing, JavaFX & SWT 14
T DataBinding Problem AWT, Swing, JavaFX & SWT 5
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 15
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 0
D Swing SwingUtils / Thread Problem AWT, Swing, JavaFX & SWT 3
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
T Swing Problem mit Datum und FormattedTextField AWT, Swing, JavaFX & SWT 2
S AWT Java print dialog Problem AWT, Swing, JavaFX & SWT 0
olfibits JavaFX Problem mit HTMLEditor AWT, Swing, JavaFX & SWT 0
W SWT hover-background-problem with first column in TreeViewer AWT, Swing, JavaFX & SWT 0
M Problem mit Add JScrollPane AWT, Swing, JavaFX & SWT 25
Mario1409 Swing JTextArea scroll Problem AWT, Swing, JavaFX & SWT 0
N Swing Problem mit loop AWT, Swing, JavaFX & SWT 2
S Swing Problem mit Button und ActionListener AWT, Swing, JavaFX & SWT 5
S Swing & Clean und build Problem AWT, Swing, JavaFX & SWT 12
S JLabel setText() Problem AWT, Swing, JavaFX & SWT 6
I 2D-Grafik Problem beim Ändern der Farbe eine 2d Objekts AWT, Swing, JavaFX & SWT 3
G Swing Splitpane Problem AWT, Swing, JavaFX & SWT 1
F Problem mit der FXML Rectangle Shape AWT, Swing, JavaFX & SWT 2
N JavaFX Stranges Problem mit der Autoscroll-Eigenschaft von Textareas AWT, Swing, JavaFX & SWT 0
E Java FX FXML Problem mit html Scriptausführung AWT, Swing, JavaFX & SWT 2
J JavaFX Intersect Problem mit Shapes AWT, Swing, JavaFX & SWT 10
R JavaFX MediaPlayer AVI-Problem AWT, Swing, JavaFX & SWT 1
M Swing Problem mit ListCellRenderer AWT, Swing, JavaFX & SWT 7
D Problem mit JTable AWT, Swing, JavaFX & SWT 1
F GUI Auflösung ändern - Koordianten und Proportions Problem AWT, Swing, JavaFX & SWT 21
J Problem mit Button darstellung AWT, Swing, JavaFX & SWT 23
M Problem mit Layoutmanagern... Hilfe wäre sehr nett. AWT, Swing, JavaFX & SWT 2
S 2D-Grafik Problem mit Variablen AWT, Swing, JavaFX & SWT 4
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
M Swing AttributiveCellTableModel addRow() Problem AWT, Swing, JavaFX & SWT 1
J Swing Problem mit Graphics Methode AWT, Swing, JavaFX & SWT 4
N JavaFX Problem mit table multiple selection AWT, Swing, JavaFX & SWT 5
K CheckBox Problem AWT, Swing, JavaFX & SWT 5
Grevak DisplayMode Problem seit Windows 10 AWT, Swing, JavaFX & SWT 2
S Swing Eigene JComboBox Problem! AWT, Swing, JavaFX & SWT 1
B Swing Problem mit Bildpfad AWT, Swing, JavaFX & SWT 4
N Swing Problem beim Scrollen mit JScrollPane AWT, Swing, JavaFX & SWT 6
V Graphics g - drawOval problem mit background AWT, Swing, JavaFX & SWT 1
C AWT Problem mit Protokol Fenster AWT, Swing, JavaFX & SWT 0
M Swing pack() Problem mit Taskleiste AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen


Oben