PDA

View Full Version : [Java] Problemi grafica


GiulioCesare
21-08-2005, 20:33
Salve ragazzi ho un problema in una piccola applicazione grafica, nella classe grafica ho creato un frame con un bottone, alla cui pressione visualizza un messaggio, poi in un'altra classe dove c'è il main chiamo la classe grafica. Il programma non segnala errori, ma in fase di esecuzione viene visualizzato solo il frame senza il pulsante e il conseguente evento, posto qui sotto le due classi, spero che qualcuno vorrà aiutarmi :)

import javax.swing.JPanel;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JButton;

public class grafica extends JFrame{

private JPanel jContentPane = null;
private JFrame jFrame = null;
private JButton jButton = null;

private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(getJButton(), java.awt.BorderLayout.CENTER);
}
return jContentPane;
}

private JFrame getJFrame() {
if (jFrame == null) {
jFrame = new JFrame();
jFrame.setContentPane(getJContentPane());
jFrame.setTitle("jFrame");
jFrame.setSize(175, 151);
}
return jFrame;
}

private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setText("Spingi");
jButton.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
System.out.println("mouseClicked()"); Auto-generated Event stub mouseClicked()
}
});
}
return jButton;
}
}


Main


import javax.swing.*;
public class start {

public static void main(String[] args) {
grafica frame = new grafica();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}

anx721
21-08-2005, 21:02
Per caso è codice creato automaticamente da qualche ide?

Ti consiglio di seguire il tutorial swing sul sito della sun, scaricabile in locale.

Il bottone no lo vedi perche no lo hai mai aggiunto al frame, che ha tra l'altro haun campo JFrame interno che non serve a nulla...

ti riporto il codice che ti serve:


import javax.swing.*;
import java.awt.*;

public class grafica extends JFrame{

private JButton jButton = null;

public grafica(){
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(200, 200);
getContentPane().add(getJButton(), java.awt.BorderLayout.CENTER));
}

private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setText("Spingi");
jButton.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
System.out.println("mouseClicked()"); Auto-generated Event stub mouseClicked()
}
});
}
return jButton;
}
}

GiulioCesare
21-08-2005, 21:52
Nel tuo codice l'oggetto frame non viene riconosciuto. Comunque ho usato Eclipse per fare questa applicazione, credevo che mi aiutasse per fare le interfacce grafiche, invece mi sta complicando la vita :muro:

anx721
21-08-2005, 22:37
dalla prima riga del costruttore:

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

togli frame. e lascia solo:

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

devi comunque avere un minimo di conoscenza della libreria swing per programmare interfacce grafiche anche se aiutato da un ambiente di sviluppo.

franksisca
22-08-2005, 14:37
devi comunque avere un minimo di conoscenza della libreria swing per programmare interfacce grafiche anche se aiutato da un ambiente di sviluppo.
se vuoi qualcosa che faccia al caso tuo, o passi a visual basic o a JBuilder della borland.
:D :D :D :D

GiulioCesare
22-08-2005, 15:24
Ho provato anche JBuilder, ma la difficoltà è la stessa, come dice anx anche se si usa un ambiente di sviluppo, bisogna comunque conoscere anche le librerie grafiche. Poi certo la facilità che ti da il visual basic nel creare interfacce grafiche, non te la da nessuno...

franksisca
22-08-2005, 22:49
vero, comunque JBuilder ti permetteva di creare interfaccie con il tool che c'era incorporato, e poi ho scoperto che anche eclipse ne ha uno, anche se non conosco il nome.