GUI chamando uma classe simples que exibe no console

Como faço para executar a classe HelloWorld no programa abaixo ?

import javax.swing.JFrame;
import javax.swing.JButton;
public class Teste2 extends JFrame {

private javax.swing.JPanel jContentPane = null;

private JButton jButton = null;
/**
 * This method initializes jButton	
 * 	
 * @return javax.swing.JButton	
 */    
private JButton getJButton() {
	if (jButton == null) {
		jButton = new JButton();
		jButton.setText("Executar HelloWorld");
		jButton.setBounds(43, 48, 180, 43);
		jButton.addActionListener(new java.awt.event.ActionListener() { 
			public void actionPerformed(java.awt.event.ActionEvent e) {    

// chamada

			}
		});
	}
	return jButton;
}
public static void main(String[] args) {
	Teste2 n = new Teste2();
	n.show();
}
/**
 * This is the default constructor
 */
public Teste2() {
	super();
	initialize();
}
/**
 * This method initializes this
 * 
 * @return void
 */
private void initialize() {
	this.setSize(300,200);
	this.setContentPane(getJContentPane());
}
/**
 * This method initializes jContentPane
 * 
 * @return javax.swing.JPanel
 */
private javax.swing.JPanel getJContentPane() {
	if(jContentPane == null) {
		jContentPane = new javax.swing.JPanel();
		jContentPane.setLayout(null);
		jContentPane.add(getJButton(), null);
	}
	return jContentPane;
}

}

Classe HelloWorld :

public class HelloWorld {
public static void main(String args[]) {
System.out.println(“Hello World!”);
}
}

se as 2 classes estiverem na mesma pasta…
basta apenas…

new HelloWorld();

:wink:

Bem…

talvez não vai dar, pq o código que você quer executar tá no metodo main(String[]) da sua classe HelloWorld. Só executa o construtor da sua classe que não tem construtor definido.

tá precisando:

Ou seja, se não quer mandar o “null” como parametro, então mande um array de objetos String.

Nao entendi nada: vc quer o que afinal? Exibir o JFrame na tela com o botão, ou exibir “Hello Wolrd” no console ???

Vc tem duas classes ali em cima: Uma que é uma jFrame (janela) e outra que nao eh nada, apenas no método main vc exibe um “Hello World” no console.

Para a primeira classe :
Basta vc dar um java Teste2.

Para a segunda classe :
Basta vc dar um java HelloWorld

Agora, se vc quiser incrementar um pouco, vc ja deixou pronto pra acionar alguma coisa quando for clicado o botão, entao adiciona uma chamada a nova classe para imprimir no console:

[code]private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setText("Executar HelloWorld");
jButton.setBounds(43, 48, 180, 43);
jButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {

				// chamada
				HelloWorld.main(null);
			}
		});
	}
	return jButton;
}[/code]

É isso ai…

flw!

É isso ai mesmo. De dentro da classe gráfica eu quero executar uma classe que exibe no console. É para efeitos didáticos somente …
Valeu !!!

[quote=“zeus”]É isso ai mesmo. De dentro da classe gráfica eu quero executar uma classe que exibe no console. É para efeitos didáticos somente …
Valeu !!![/quote]

Então, para um efeito didatico mais bonitinho, dá uma melhorada na tua classe HelooWorld, pois o método main é o método principal , onde a jvm vai iniciar a classe solicitada.
Então, faça o seguinte, remova o método main ( ja que nao vai usar a classe HelloWorld sozinha, chamando-a direto do console ) e adicione um contrutor nela, juntamente com o println() para imprimir alguma coisa quando essa classe for instanciada.

public class HelloWorld{ public HelloWorld(){ super(); // chama o contrutor da classe superior. System.out.println("Hello World!"); } }

a chamada ficaria assim no codigo, ao inves de chamar o método main diretamente:

Abraços!!!