Was benutzen anstatt this?

KingEldarion

Bekanntes Mitglied
Hi,

ich habe das Problem, ich möchte für den JFrame haupt einbauen, dass wenn er gedrückt wird, halt gesagt wird: Dies ist noch nicht eingebaut, jedoch soll ich jetzt folgendes einbauen:
bChange.addActionListener( this );

Aber this kann ich doch nicht in Blöcken einbauen, die static beinhalten bzw. mit static beschrieben sind...


Was kann ich stattdessen benutzen, hoffe auf vernünftige Antworten mit denen ein Anfänger auch was anfangen kann...



Code:
import java.awt.Color;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;



class start extends JFrame implements ActionListener
{
	
	
	static JButton bChange ;
	
	public static void main ( String[] args )
	{
		
		JFrame haupt = new JFrame("TEST");
		haupt.setLayout( new GridLayout(10,1));
		haupt.setSize(850,500);
		haupt.setVisible( true );
		haupt.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
		haupt.setBackground(Color.BLACK);	
		haupt.getContentPane().setBackground(Color.WHITE);
		
		
		
		bChange = new JButton("Play now");
				haupt.add( bChange );

						
	}





public void actionPerformed( ActionEvent evt);
{
  System.out.println("Tut mir leid dies ist noch nicht eingebaut!");
}
	
}



MfG KingEldarion
 
Es wird eine Instanz erwartet, die ActionListener implementiert. Eine solche Instanz wäre z.b.
Code:
new start()
(Klassen schreibt man groß!!)

Warum erbst du von JFrame wenn du selbst noch einen in deiner main Methode erstellst? Die Vererbung kannst du hier lassen..
 
So ungefähr...

Java:
class Start extends JFrame implements ActionListener
{
	private JButton bChange ;
        
        public Start(String title)
        {
            super(title);
            initGUI();
        }
 
        private void initGUI()
        {
                // set frame properties
		setSize(850,500);
		setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

                // set content pane properties
		getContentPane().setLayout( new GridLayout(10,1));
		getContentPane().setBackground(Color.WHITE);
		
                // initialize gui components
		bChange = new JButton("Play now");
                bChange.addActionListener(this);

                // set actions
		getContentPane().add( bChange );
           
        }
	
	public void actionPerformed( ActionEvent evt);
	{
	  System.out.println("Tut mir leid dies ist noch nicht eingebaut!");
	}

	public static void main ( String[] args )
	{
		
		Start haupt = new Start ("TEST");
		haupt.setVisible( true );
	}

}

Man sollte aber nicht so viel Code im main() haben. Lieber einen Konstruktor verwenden.

Du kannst die frame.add Methode direkt nur beim java.awt.Frame verwenden. Beim JFrame muss man mit ContentPane arbeiten.
 
Beim JFrame muss man mit ContentPane arbeiten.

API-Doc lesen ist wohl nicht deine Stärke oder ?

As a conveniance add and its variants, remove and setLayout have been overridden to forward to the contentPane as necessary.

Sowohl unter Java5.0 : JFrame (Java 2 Platform SE 5.0)
als auch unter Java6 : JFrame (Java Platform SE 6)
als auch natürlich unter Java7 : JFrame (Java Platform SE 7 )

Schon lustig wenn man einen so ausdrucksvollen Nick wie du hat der vermuten lässt das man Ahnung hätte ... und sich dann durch sowas selbst als Depp outed ... *grins*.
 
Toll, und was ist mit Java 1.4? Nur weil es die neueren Versionen können heißt es nicht dass es alle können. Warum sollte man das mit Absicht falsch behaupten?
 
Es ist schon gut wenn man Abwärtskompatibilität hat, oder ?
Na ja, irgendwo muss nun mal eine Grenze gezogen werden. Zur Steinzeit müssen nur noch Grossbanken und ähnliche Unternehmen kompatibel sein ;-)

Neu geschriebene Software für den Enduserbereich darf IMO schon auf 6 basieren.
(So nebenbei - wer unsere (nein, ich sag nicht, wer wir sind) SW installiert, installiert gleich eine VM mit ;-) - war nicht meine Entscheidung, aber es ist eine der wenigen die den Wartungsaufwand massiv verringert haben)
 
TherealSpike hat gesagt.:
und sich dann durch sowas selbst als Depp outed ... *grins*.

mal sehen was von Dir so für Fragen hier kommen werden 🙂 ich denke mal keine mehr 😉

By the way hat der King (nachdem er sich registriert hat *herzlichen Glückwunsch und Willkommen im Forum*) schon geschrieben, daß er Anfänger ist... Er kann halt keine Apis lesen und Du keine Foreneinträge 😀
 

Zurück
Oben