PDA

Visualizza la versione completa : [Java] Problema frame


Shea
21-01-2005, 12:16
Ciao a tutti, ho creato una classe che contiene una form. Il problema è che non so come lanciare la form stessa :(

posto il codice così forse potete capire qualcosa di più in ciò che ho scritto.


import javax.swing.JPanel;
import javax.swing.JTextPane;
import javax.swing.JFrame;
import javax.swing.JButton;


public class postit {
public static void main(String[] args) {
//System.out.println("Ciao!");
return initGUI();
}

public void initGUI() {
jButton1.setText("jButton1");
jButton1.setBounds(new java.awt.Rectangle(131, 144, 56, 23));
jButton1.setLabel("Nuovo");
jButton1.setActionCommand("bNuovo");
jButton1.setFont(new java.awt.Font("Arial", java.awt.Font.PLAIN, 10));
jButton1.setMargin(new java.awt.Insets(1,2,1,2));
jButton1.setMaximumSize(new java.awt.Dimension(37,21));
jButton1.setMinimumSize(new java.awt.Dimension(37,21));
jButton1.setPreferredSize(new java.awt.Dimension(37,21));
Frame1.setBounds(new java.awt.Rectangle(0,0,438,300));
Frame1.setSize(new java.awt.Dimension(200,200));
Frame1.setBackground(new java.awt.Color(255, 255, 0));
Frame1.getContentPane().setLayout(new java.awt.GridBagLayout());
Frame1.getContentPane().add(jPanel1,
new java.awt.GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, java.awt.GridBagConstraints.CENTER, java.awt.GridBagConstraints.BOTH,
new java.awt.Insets(0, 0, 0, 0), 98, 177));
jPanel1.setBackground(new java.awt.Color(255,255,0));
jPanel1.setLayout(null);
jPanel1.add(jButton1);
jPanel1.add(jButton2);
jPanel1.add(jButton3);
jButton2.setText("jButton2");
jButton2.setBounds(new java.awt.Rectangle(68, 145, 56, 23));
jButton2.setActionCommand("bModifica");
jButton2.setLabel("Modifica");
jButton2.setMargin(new java.awt.Insets(1,2,1,2));
jButton2.setFont(new java.awt.Font("Arial", java.awt.Font.PLAIN, 10));
jButton3.setText("jButton3");
jButton3.setBounds(new java.awt.Rectangle(6, 145, 57, 23));
jButton3.setActionCommand("bLeggi");
jButton3.setLabel("Leggi");
jButton3.setMargin(new java.awt.Insets(1,2,1,2));
jButton3.setFont(new java.awt.Font("Arial", java.awt.Font.PLAIN, 10));
}

public JFrame Frame1 = new JFrame();
public JPanel jPanel1 = new JPanel();
public JButton jButton1 = new JButton();
public JButton jButton2 = new JButton();
public JButton jButton3 = new JButton();
}

Grazie in anticipo per l'aiuto

anx721
21-01-2005, 12:44
Il tuo programma conteneva degli errori che non ti permettevano neanche di compilare, ad esempio avevi dei campi non statici a cui accedevi da metodi statici, e ritornavi un intero dal main che è void... comunque in genere per creare un'interfaccia si definisce una classe che estende JFrame e nel cui costruttore metti tutte le istruzioni per inizializzare l'interfaccia e alla fine il metodo show() per mostrare la finestra; poi nel main ti basta crare un'istanza di tale JFrame affinche questo venga visualizzato come ho fatto io:



import javax.swing.JPanel;
import javax.swing.JTextPane;
import javax.swing.JFrame;
import javax.swing.JButton;


public class postit {
public static void main(String[] args) {
//System.out.println("Ciao!");
new MyFrame();
}
}

class MyFrame extends JFrame{

public MyFrame(){
initGUI();
show();
}

public void initGUI() {
jButton1.setText("jButton1");
jButton1.setBounds(new java.awt.Rectangle(131, 144, 56, 23));
jButton1.setActionCommand("bNuovo");
jButton1.setFont(new java.awt.Font("Arial", java.awt.Font.PLAIN, 10));
jButton1.setMargin(new java.awt.Insets(1,2,1,2));
jButton1.setMaximumSize(new java.awt.Dimension(37,21));
jButton1.setMinimumSize(new java.awt.Dimension(37,21));
jButton1.setPreferredSize(new java.awt.Dimension(37,21));
setBounds(new java.awt.Rectangle(0,0,438,300));
setSize(new java.awt.Dimension(200,200));
setBackground(new java.awt.Color(255, 255, 0));
getContentPane().setLayout(new java.awt.GridBagLayout());
getContentPane().add(jPanel1,
new java.awt.GridBagConstraints(0, 0, 1, 1, 1.0, 1.0, java.awt.GridBagConstraints.CENTER, java.awt.GridBagConstraints.BOTH,
new java.awt.Insets(0, 0, 0, 0), 98, 177));
jPanel1.setBackground(new java.awt.Color(255,255,0));
jPanel1.setLayout(null);
jPanel1.add(jButton1);
jPanel1.add(jButton2);
jPanel1.add(jButton3);
jButton2.setText("jButton2");
jButton2.setBounds(new java.awt.Rectangle(68, 145, 56, 23));
jButton2.setActionCommand("bModifica");
jButton2.setMargin(new java.awt.Insets(1,2,1,2));
jButton2.setFont(new java.awt.Font("Arial", java.awt.Font.PLAIN, 10));
jButton3.setText("jButton3");
jButton3.setBounds(new java.awt.Rectangle(6, 145, 57, 23));
jButton3.setActionCommand("bLeggi");
jButton3.setMargin(new java.awt.Insets(1,2,1,2));
jButton3.setFont(new java.awt.Font("Arial", java.awt.Font.PLAIN, 10));
}


public JPanel jPanel1 = new JPanel();
public JButton jButton1 = new JButton("Nuovo");
public JButton jButton2 = new JButton("Modifica");
public JButton jButton3 = new JButton("Leggi");
}

Shea
21-01-2005, 14:58
Grazie per la risposta ma in fase di compilazione ricevo degli errori.
Prima di tutto ho messo un this. davanti a show(), ora è this.show()

Poi compilando ho ricevuto i seguenti errori


D:\Personal\postit2>javac postit.java -deprecation
postit.java:29: warning: setLabel(java.lang.String) in javax.swing.AbstractButton has
been deprecated
jButton1.setLabel("Nuovo");
^
postit.java:51: warning: setLabel(java.lang.String) in javax.swing.AbstractButton has
been deprecated
jButton2.setLabel("Modifica");
^
postit.java:57: warning: setLabel(java.lang.String) in javax.swing.AbstractButton has
been deprecated
jButton3.setLabel("Leggi");
^
3 warnings


Il codice precedente l'ho scritto con Together Control Center, mando il codice in Run e non ricevo errori, solo che nulla parte e nella directory non trovo le classi compilate, la compilazione la faccio tramite linea di comando da Shell.

anx721
21-01-2005, 15:11
Non sono errori ma warning che riguardano l'uso di metodi vecchi che non dovrebbero essere usati, quali setLabel che infatti avevo eliminato dal tuo codice. L'uso di this.show() non è necessario perche all'interno di una classe i metodi che non vengono esplicitamente invocati su un oggetto, sono automaticamente invocati su this.

Per eseguire da shell fai:

java postit

dalla cartella in cui hai compilato in cui devono eserci i file .class creati con la compilazione. Il propramma che usi per compilare non slo conosce, probabilmente non lo hai settato bene; se sei agli inizi ti consiglio TextPad o JCreator

Loading