Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Chiedo scusa...

    Salve ragazzi, ho un problemino, sto studiando il capitolo delle interfacce swing per un esame di java. Per esercitarmi voglio creare un rettangolo ,prendendo in input i valori di altezza e base da delle caselle di testo.Praticamente una volta creato il Frame, ho creato due pannelli, in uno ci sono le caselle di testo,e nell'altro c'è il tasto "ok" a cui ho associato l'azione della creazione del rettangolo al suo interno. Sicuramente faccio un errore banale ma non riesco a capirlo!.Qunado premo il tasto ok per disegnare il rettangolo non mi disegna niente. Se qualcuno riuscisse ad aiutarmi sarei molo felice!Grazie comunque!

    import java.awt.*;
    import java.awt.event.*;
    import java.lang.reflect.*;
    import java.net.*;
    import java.text.*;
    import java.util.*;
    import javax.swing.*;
    import javax.swing.text.*;
    import java.awt.geom.*;


    public class Programsw
    {
    public static void main(String[] arg)
    {
    Frame frame= new Frame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
    frame.setVisible(true);
    }
    }

    class Frame extends JFrame
    {

    public Frame()
    {
    setTitle("FormatTest");
    setSize(Width,Heigth);


    Panel buttonPanel = new Panel();
    buttonPanel.setLayout(new GridLayout(2,2));
    add(buttonPanel,BorderLayout.NORTH);
    Panel2 grafico = new Panel2();
    Container contentPane = getContentPane();
    contentPane.add(grafico,BorderLayout.CENTER);
    //add(grafico,BorderLayout.CENTER);




    }

    public static final int Width=500;
    public static final int Heigth=250;



    }

    class Panel extends JPanel
    {


    public Panel()
    {



    JLabel label1 = new JLabel("Base");
    JFormattedTextField intField = new JFormattedTextField(NumberFormat.getIntegerInstanc e());
    intField.setValue(new Integer(100));

    add(label1);
    add(intField);



    JLabel label2 = new JLabel("Altezza");
    JFormattedTextField intField2 = new JFormattedTextField(NumberFormat.getIntegerInstanc e());
    intField2.setValue(new Integer(200));

    add(label2);
    add(intField2);


    Number valuealtezza = (Number) intField2.getValue();
    altezza = valuealtezza.intValue();

    Number valuebase = (Number) intField.getValue();
    base = valuebase.intValue();





    }


    public static int altezza,base;

    }

    class Panel2 extends JPanel
    {
    static Rectangle2D paintComponent()
    {




    Rectangle2D rect = new Rectangle2D.Double(Panel.base,Panel.base,Panel.alt ezza,Panel.altezza);
    return rect;




    }


    public Panel2()
    {




    JButton okButton = new JButton("OK");

    ActionListener ok = new okAction();
    okButton.addActionListener(ok);
    add(okButton);




    }



    class okAction implements ActionListener
    {


    public void actionPerformed(ActionEvent event)
    {


    Rectangle2D mioRect=paintComponent();
    //setBackground(Color.yellow);
    g.draw(mioRect);

    //setPaint(g.draw(mioRect));

    }


    }
    public static Graphics2D g;

    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    43
    prova un po così


    Codice PHP:
    import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.Graphics;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.text.NumberFormat;
    import javax.swing.Box;
    import javax.swing.JButton;
    import javax.swing.JFormattedTextField;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;

    public class 
    Programsw {
        public static 
    void main(String[] arg) {
            
    Frame frame = new Frame();
            
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            
    frame.setVisible(true);
        }
    }

    class 
    Frame extends JFrame {

        
    /**
         * 
         */
        
    private static final long serialVersionUID 1L;

        public 
    Frame() {
            
    setTitle("FormatTest");
            
    setSize(WidthHeigth);

            
    buttonPanel = new Panel();
            
    //buttonPanel.setLayout(new GridLayout(2, 2));
            
    add(buttonPanelBorderLayout.NORTH);
            
    grafico = new Panel2();
            
    grafico.setVisible(false);
            
    Container contentPane getContentPane();
            
    contentPane.add(graficoBorderLayout.CENTER);

        }
        private 
    void ridisegna(){
            
    repaint();
        }

        private static final 
    int Width 500;
        private static final 
    int Heigth 250;
        private 
    JPanel buttonPanel;
        private 
    JPanel grafico;
        private 
    int altezzabase;
        private 
    JFormattedTextField intField2;
        private 
    JFormattedTextField intField;
        
        class 
    Panel extends JPanel {
            private static final 
    long serialVersionUID 1L;

            public 
    Panel() {
                
    Box verticale=Box.createVerticalBox();
                
    Box orizzontale1=Box.createHorizontalBox();
                
    Box orizzontale2=Box.createHorizontalBox();
                
                
    JLabel label1 = new JLabel("Base");
                
    intField = new JFormattedTextField(NumberFormat
                        
    .getIntegerInstance());
                
    intField.setValue(new Integer(100));

                
    orizzontale1.add(label1);
                
    orizzontale1.add(intField);

                
    JLabel label2 = new JLabel("Altezza");
                
    intField2 = new JFormattedTextField(
                        
    NumberFormat.getIntegerInstance());
                
    intField2.setValue(new Integer(200));
                
                
    orizzontale2.add(label2);
                
    orizzontale2.add(intField2);

                
    Number valuealtezza = (NumberintField2.getValue();
                
    altezza valuealtezza.intValue();

                
    Number valuebase = (NumberintField.getValue();
                
    base valuebase.intValue();
                
                
    JButton okButton = new JButton("OK");
                
    ActionListener ok = new okAction();
                
    okButton.addActionListener(ok);
                
    //add(okButton);
                
                
    verticale.add(orizzontale1);
                
    verticale.add(orizzontale2);
                
    verticale.add(okButton);
                
    add(verticale);
            }

            

        }

        class 
    Panel2 extends JPanel {
            private static final 
    long serialVersionUID 1L;
            public 
    void paint(Graphics arg0) {
                
    arg0.drawRect(PXinPYinaltezzaaltezza);
            }
        }
        private final 
    int PXin=50;
        private final 
    int PYin=50;
        
        class 
    okAction implements ActionListener {

            public 
    void actionPerformed(ActionEvent event) {
                
    Number valuealtezza = (NumberintField2.getValue();
                
    altezza valuealtezza.intValue();

                
    Number valuebase = (NumberintField.getValue();
                
    base valuebase.intValue();
                
                
    grafico.setVisible(true);
                
    grafico.repaint();
                
    ridisegna();
            }

        }

    Fammi sapere
    by yakino @doc

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Rileggi bene il regolamento del forum.
    Per le prossime volte:

    1) Il titolo va messo con un po' di criterio: esso deve rappresentare ciò di cui si parla all'interno della discussione

    2) Il codice va postato all'interno dei tag [code] e [/code] in modo da renderlo leggibile e mantenerne l'indentazione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4

    Grazie per l'aiuto.

    Yakino ti ringrazio sei stato molto gentile, scusate se sono stato rozzo nell'inserire il codice.
    Grazie ancora.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.