PDA

Visualizza la versione completa : problema con java


Prima
24-06-2003, 09:33
Salve io ho due programmi uno che mi crea una finestra:
import java.awt.*;

public class Pannello extends Frame
{
public Pannello()
{
super("Pannello");
setLocation(400,300);
setSize(300,300);
show();
}
public static void main(String[] args)
{
new Pannello();
System.out.println("Creato il pannello");



}
}
e uno che mi crea un bottone cliccabile:
import java.awt.*;
import java.awt.event.*;

class Bottone extends Frame
{

Button cliccami=new Button("Cliccami");
Label cliccato=new Label("Non mi hai cliccato nemmeno una volta");

public Bottone()
{
cliccami.addActionListener(new Ascoltatore());
cliccami.setActionCommand("CLICK");
add(cliccami,BorderLayout.NORTH);
add(cliccato,BorderLayout.SOUTH);


pack();
show();
}

public static void main(String[] args)
{
new Bottone();
}
int volte=2;
public class Ascoltatore implements ActionListener

{

public void actionPerformed(ActionEvent e)
{
String Comando=e.getActionCommand();
if (Comando.compareTo("CLICK")==0)
{
cliccato.setText("Mi hai cliccato");
cliccami.setLabel("Ricliccami");
}

if (Comando.compareTo("RECLICK")==0);
cliccato.setText("Mi hai cliccato ben" + (volte++) + "volte.");

}
}
}
Vorrei unire le due cose nel senso da avere il bottone nella finestra ,ho meso il codice del bottone in quello della finestra dopo il system.out.... ma mi da errori posso chiedere gentilmente come posso eseguire tale operazione,se gentilmente mi fosse spiegata passo per passo grazie Antonio

Tigre851
24-06-2003, 09:41
Ciao,
dovresti aggregare la classe bottone alla finestra e successivamente usare il metodo:

finestra.add(bottone);

inoltre ho notato che buttone estende frame... sei sicura? da tanto che non scrivo applicazioni grafiche in java ma se la memoria non mi tradisce per il bottone esiste gi una classe quindi al massimo dovresti estendere quella...

Il tuo scopo creare una finestra con un bottone? se si provo a postarti il codice funzionante



CIAO

floyd
24-06-2003, 09:43
sia Bottone che Pannello estendono Frame quindi sono finestre awt
butta via Pannello e usa Bottone

Prima
24-06-2003, 09:50
forse meglio che parta con un applicazione piu semplice,mi potresti inviare un semplicissimo codice che crei una finestra cn un bottone,vorrei studiarmelo un po ,una cosa molto semplice credo sia meglio partire da qui grazie antonio

Tigre851
24-06-2003, 10:01
import java.awt.*;
public class finestraBottone {
public static void main(){
button b = new button("Cliccami");
Frame f = new Frame("Finestra con bottone");
f.add(b);
f.setVisible = true;
}
}
Questa una semplicissima applicazione con una finestra ed un bottone se volessi aggiungere un ascoltatore ti converrebbe farti una classe separata in un altro file del tipo

public class gestoreBottone implements ActionListener{

implementi tutti i metodi dell' interfaccia ActionListener

e dopo la riga della classe finestraBottone:

button b = new button("Cliccami");

scrivi:

b.add(new gestoreBottone());

cos registri il bottone presso l' ascoltatore

P.S. cos come ho scritto io le due classi risiedono nella stessa cartella...


Ciao!!

floyd
24-06-2003, 10:03
import java.awt.*;
import java.awt.event.*;

class Bottone extends Frame {

Button cliccami=new Button("Cliccami");
Label cliccato=new Label("Non mi hai cliccato nemmeno una volta");

public Bottone() {
cliccami.addActionListener(new Ascoltatore());
cliccami.setActionCommand("CLICK");
add(cliccami,BorderLayout.NORTH);
add(cliccato,BorderLayout.SOUTH);

pack();
show();
}

public static void main(String[] args) {
new Bottone();
}

int volte=2;

public class Ascoltatore implements ActionListener {

public void actionPerformed(ActionEvent e) {
String Comando=e.getActionCommand();
if (Comando.compareTo("CLICK")==0) {
cliccato.setText("Mi hai cliccato");
cliccami.setLabel("Ricliccami");
}

if (Comando.compareTo("RECLICK")==0);
cliccato.setText("Mi hai cliccato ben" + (volte++) + "volte.");

}
}
}

questo va benissimo

Prima
24-06-2003, 10:05
grazie per l attenzione molto gentili antonio

Prima
24-06-2003, 10:17
mi da errore nella riga "f.setVisible=true;"
symbol : variable setVisible
location: class java.awt.Frame
f.setVisible=true;
^
1 error
??

Tigre851
24-06-2003, 10:43
Ciao,
prima ho fatto un errorino; invece di:
b.add(new gestoreBottone());
scrivi:
b.addActionListener(new gestoreBottone());
Per il setVisible forse non si scrive cos ( da tanto che non faccio applicazioni grafiche) prova a guardare sulla guida del jdk come lo scrivono...

Se non funzia dimmelo che ci d una riguardata... Ciao

Loading