Java Class von JFrame aus ausführen?

Tobias Feld

Grünschnabel
Hallo ich wollte fragen wie es möglich ist eine Java Class von einer Java JFrame aus auszuführen das soll bedeuten wenn ich auf einen Button drücke soll sich die Classe im Hintergrund öffnen und soll alles tun was drin steht!

Geht das


lg Tobi
 
brrr ich glaub nicht dass dazu relfection nötig ist.
wenn ich auf einen Button drücke soll sich die Classe im Hintergrund öffnen und soll alles tun was drin steht!
Das klingt schon mal etwas komisch.

Du willst beim Knopfdruck, eine Methode einer Klasse im Hintergrund ausführen, richtig?

Im folgenden Beispiel enthält der Frame MeinFrame eine Instanz der Klasse DoSomething.
Beim Knopfdruck wird eine Methode von DoSomething ausgeführt.

Code:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;


public class TestJFrame {
	public static void main(String[] args) {
		JFrame frame = new MeinFrame();
		frame.setVisible(true);
	}
}

class MeinFrame extends JFrame {
	private DoSomething something = new DoSomething();
	public MeinFrame() {
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		JButton button = new JButton("doIT");
		button.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				new Thread(new Runnable() {
					@Override
					public void run() {
						something.doIt();
					}
				}).start();
			}
		});
		add(button);
		setAlwaysOnTop(true);
		pack();
	}
}

class DoSomething {
	private int counter = 0;
	public void doIt() {
		while (true) {
			System.out.println("ich bin Thread[" +Thread.currentThread().getId() +"] " +counter++);
			try {
				Thread.sleep(100);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			if (counter >= 50) {
				counter = 0;
				return;
			}
		}
	}
}
 

Neue Beiträge

Zurück