Newsgroup: it.comp.java
Titolo: Aiuto x Frame

Ciao!
Non riesco a risolvere un problemino con un frame.
Ho creato un frame con un JButton a nord un JPanel al centro e una TextArea
a sud.
Quando premo il JButton voglio che venga contemporaneamente disegnato un
oggetto all'interno del JPanel e scritto un messaggio nella TextArea. Per
quanto riguarda il disegno č tutto ok, ma non scrive niente nella TextArea
dandomi la seguente Eccezione :
Exception occurred during event dispatching:
java.lang.ArithmeticException: / by zero
        at MyPanel.barChart(P11_11.java:102)
        at MyFrame$MyActionListener.actionPerformed(P11_11.java:77)
        at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1450)
        at
javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButto
n.java:1504)
        at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:3
78)
        at
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:250)
        at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener
.java:216)
        at java.awt.Component.processMouseEvent(Component.java:3717)
        at java.awt.Component.processEvent(Component.java:3546)
        at java.awt.Container.processEvent(Container.java:1164)
        at java.awt.Component.dispatchEventImpl(Component.java:2595)
        at java.awt.Container.dispatchEventImpl(Container.java:1213)
        at java.awt.Component.dispatchEvent(Component.java:2499)
        at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2451)
        at
java.awt.LightweightDispatcher.processMouseEvent(Container.java:2216)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2125)
        at java.awt.Container.dispatchEventImpl(Container.java:1200)
        at java.awt.Window.dispatchEventImpl(Window.java:912)
        at java.awt.Component.dispatchEvent(Component.java:2499)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:319)
        at
java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:103)
        at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:84)
io ho semplicamente creato una TextArea cosě: TextArea text=new
TextArea("Ciao",5,30);
e poi, nell'ascoltatore di eventi ActionListener che ho legato al JButton ho
scritto : text.append("CiaoCiao...");
Perchč non mi funziona? Ho anche provato a usare il metodo insert al posto
di append ma č la stessa cosa!
Mha...
-- 
Posted from [62.94.67.172] by way of 
oe39.law10.hotmail.com
 [64.4.14.96] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

di append ma č la stessa cosa!
controlla la linea 102 del file P11_11.java
cosa hai messo?
ciao_O
_______________________________________
jame 4.0c is available! 
http://jame.sourceforge.net
_______________________________________
http://digilander.iol.it/schiele

Ciao Andrea, scusa il ritardo della risposta ma non ho avuto tempo prima.
Alla riga 120 c'č la graffa di chiusura del metodo barChart, ti posto il
codice ripulito dalle cose inutili:
import .....;
import .....;
public class P11_11
{
    static double[] array;
    public static void main(String[] args)
    {
        MyFrame frame=new MyFrame();
        frame.setTitle("Titolo");
        frame.show();
        array=new double[20];
    }
    public static double[] getArray()
    {
        for (int i=0;i<array.length;i++)
            array[i]=......;
            .....
        return array;
    }
}
class MyFrame extends JFrame
{
    public MyFrame()
    {
        setSize(500,400);
        addWindowListener(new MyWindowListener());
        JButton button=new JButton("Next>");
        button.addActionListener(new MyActionListener());
        panel=new MyPanel();
        TextArea text=new TextArea("Testo",5,30,1);
        text.setEditable(false);
        Container contenitore=getContentPane();
        contenitore.add(button,"North");
        contenitore.add(panel,"Center");
        contenitore.add(text,"South");
    }
    private MyPanel panel;
    private TextArea text;
    private class MyWindowListener extends WindowAdapter
    {
        public void windowClosing(WindowEvent e)
        {
            System.exit(0);
        }
    }
    private class MyActionListener implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            panel.barChart(P11_11.getArray());
            text.append("Messaggio ...........");  <----- Questa č la righa
incriminata!
        }
    }
}
class MyPanel extends JPanel
{
    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        Graphics2D g2=(Graphics2D)g;
        .........
    }
    public void barChart(double[] data)
    {
     .......
        repaint();
    }
    private double .....;
    ...
}
Come puoi vedere creo un frame con un JButton, un JPanel e una TextArea.
Quando il bottone viene premuto viene eseguito il metodo actionPerformed
che, per prima cosa chiama il metodo barChart per disegnare nel JPanel, e
poi il metodo append della TextArea.
Tutto funziona tranne la riga che ho marcato (text.append("Messaggio ..."))
che non scrive niente nella TextArea e mi lancia una eccezzione, ma se
quella riga la metto come commento(cioč  gli aggiungo // davanti) non viene
lanciata nessuna eccezzione. Quindi il problema sta lě, ma come faccio
allora a scrivere in quella cavolo di TextArea?
-- 
Posted from [62.94.65.135] by way of 
oe11.law10.hotmail.com
 [64.4.14.115] 




non inizializzi la tua TextArea !
nel costruttore hai messo
[...]
panel=new MyPanel();
TextArea text=new TextArea("Testo",5,30,1);
 text.setEditable(false);
[...]
invece che 
[...]
panel=new MyPanel();
text=new TextArea("Testo",5,30,1);
text.setEditable(false);
[...]
comunque mi sembra strano che ti dia divisione per zero!?
magari gli errori sono due


Come ho fatto a non accogermene!!! Così com'è in pratica ci sono due
TextArea, giusto?(o meglio una TextArea, con relativo riferimento, ed un
riferimento ad una TextArea inesistente)
Grazie Andrea, non so proprio com'è potuta sfuggirmi una stupidata del
genere.
Comunque la divisione per zero era dovuta a un numero sbagliato inserito
nell'array.
Grazie ancora, ciauz. ;-)
-- 
Posted from [62.94.67.116] by way of 
oe2.law10.hotmail.com
 [64.4.14.106] 


riferimento ad una TextArea inesistente)
c'e' una TextArea non inizializzata 
ciao_O
_______________________________________
jame 4.0d is available! 
