Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Wie kann ich auch in einem ActionListener ein neues java Pro
Gehen wir mal davon aus ich habe eine GUI mit 2 Bouttons die GUI heist GUItest.java
In der GUItest.java habe ich den zwei Bouttons denen ich dann jeweils einen ActionListener verpasst habe. Einen Start und einen Exit Knopf.
So wenn jetzt einer auf den Boutton start drückt, soll er ein weiteres schon fertiges Programm aufrufen mit dem Namen 1plus1.java welches sich im gleichen Ordner wie die GUItest.java befindet. Die Actionevents (ActionListener) der Knöpfe würden so ausehen.
public void DateiJMenuItem1ActionPerformed(ActionEvent evt) {
was muss hier rein damit er das Programm 1plus1.java aufruft rein
}
Bei dem Exit ist es ja klar.
public void DateiJMenuItem2ActionPerformed(ActionEvent evt) {
System.exit(0);
}
In dem 1plus1.java wird einfach nur 1 plus 1 gerechnet mehr nicht. Es dient nur zu Veranschaulichung.
Es wäre echt sehr lieb wenn mir da einer bei helfen könnte.
Wenn du ein externe Program starten willst, kannst du das mit Runtime#exec machen. Wenn es aber um andere Java-Klassen geht, dann ist das eigentkich überflüssig; mach doch einfach das, was du in der main der anderen Klasse amchen würdes, direkt dort, wo du das aufrufen willst (du kann natürlich auch die main-Methode der anderen Klasse aufrufen).
Damit es übersichtlich bleibt, möchte ich halt gerne von mir auch aus eine andere Klasse starten. Was muss ich denn da reich machen ?
ich weiß nicht wie ich dann das Rechenprogramm aufrufen kann. Ich kann war alles Weitere selber programmieren. Ich weiß nur nicht, wie ich die andere Klasse (Programm) aufrufen kann.
Wie mache ich das?
public void DateiJMenuItem1ActionPerformed(ActionEvent evt) {
was muss hier rein damit er das Programm 1plus1.java aufruft rein
public void DateiJMenuItem1ActionPerformed(ActionEvent evt) {
new 1plus1();
//oder:
//1plus1 plus = new 1plus1();
//plus.irgendwas();
}
Wenn du allerdings längere Berechnungen in 1plus1 machst, solltest du dich mit Threads auseinandersetzen, da sonst deine GUI nicht mehr reagiert so lange 1plus1 rechnet.
Klassennamen dürfen nicht mit einer Zahl beginnen.
Zeig uns doch mal deine Klasse '1plus1'. Wenn das eine ganz normale Klasse ist, rufst du eben die Berechnende Methode dieser Klasse auf.
Komisch, dass der Compiler bei dem Namen nicht meckert... ???:L
Code:
public void DateiJMenuItem1ActionPerformed(ActionEvent evt) {
1plus1 obj = new 1plus1();
obj.methodeDieBerechnet();
}
Aber, bennen deine Klasse erst mal um. -Oder hab ich das wieder falsch verstanden-
Das war nur ein Beispiel für ein Programm.
Das mit den 1 weiß ich ja. Es ging nur darum, wie ich ein schon fertiges Java Programm dann mit dem Start Knopf aufrufen kann. Hier habe ich nur zur Vereinfachung ein Rechenprogramm ausgedacht was 1 und 1 rechnet. Man kann aber auch alles weitere aufrufen. Ein Programm mit einer neuen GUI oder was immer. Ich möchte ja nur, dass wenn einer Start drückt, dann ein neues Java
Programm was schon im Ordner liegt aufgerufen wird.
Code:
public void DateiJMenuItem1ActionPerformed(ActionEvent evt) {
new rechnen(); // wie wird hier das programm rechnen.java aufgerufen. Da könnte auch alles andere aufgerufen werden.
}
Dann das rechnen.java was im gleichen ordner lieg was dann gestartet werden soll wenn man start drückt. Ich weiß das ich das auch alles im Event einbauen kann. Das möchte ich aber nicht. Er soll das für sich schon fertige Programm öffnen.
Hier öffne ich nur als Beispiel mal ein Fenster ist ja auch egal was.
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class rechnen extends JFrame {
// Anfang Variablen
// Ende Variablen
public rechnen(String title) {
// Frame-Initialisierung
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) { System.exit(0); }
});
int frameWidth = 300;
int frameHeight = 300;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2 ;
setLocation(x, y);
Container cp = getContentPane();
cp.setLayout(null);
// Anfang Komponenten
// Ende Komponenten
setResizable(false);
setVisible(true);
}
// Anfang Ereignisprozeduren
// Ende Ereignisprozeduren
public static void main(String[] args) {
new rechnen("rechnen");
}
}
Was muss ich im Startknopf ActionEvent als Syntax einbauen, damit er das rechnen.java ausführt (welches sich im gleichen Ordner befindet ) eingeben.
Ich habe mir echt schon viel durchgelesen, aber ich musste echt nicht wie ich eine Klasse dann auch aufrufen kann. Ich habe die rückgabewerte auch schon durch vererben weiter nutzen können usw. aber leider wusste ich nicht wie ich die aufrufen kann.
Jetzt habe ich alles was ich wollte Hier seit einfach spitze.
Nicht immer wird es gut beschrieben auf irgendwelchen Seiten und Büchern. Ich habe schon 2 Tage verbracht mit Java ist auch eine Insel usw. aber teilweise ist das miserabel beschrieben.