Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [java] cattura stato check/uncheck della Jcheckbox

    salve,
    stavo provando a catturare lo stato di una Jcheckbox alla premuta di un bottone, provvisoriamente stampando sulla console un messaggio di test, ma non lo cattura.

    una volta premuto il pulsante Registra dovrebbe catturarmi lo stato della Jcheckbox cass2 e controllare se il valore di ritorno è TRUE o FALSE.

    codice:
    package Xpar.gui;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import net.java.dev.designgridlayout.*;
    import java.io.*;
    import java.text.SimpleDateFormat;
    import javax.swing.filechooser.FileNameExtensionFilter;
    import java.util.Date;
    import java.util.Locale;
    
    
    
    /**
     *
     * @author andy
     */
    public class XPAR  {
    
        
        JFrame frame=new JFrame();
        JPanel panelUno=new JPanel();
        DesignGridLayout layout=new DesignGridLayout(panelUno);
        JLabel nomeFile=new JLabel("Nome File:");
        JTextField campoNomeFile=new JTextField();
        JButton sfogliaFile=new JButton("...");
        JLabel dimCarLabel=new JLabel("Dimensione Caratteri:");
            JTextField dimCaratteri=new JTextField();
            JLabel altRigheLabel=new JLabel("Altezza Righe:");
           JTextField altRighe=new JTextField();
            JButton altIncremento=new JButton("+");
            JButton altDecremento=new JButton("-");
            JButton dimDecremento=new JButton("-");
            JButton dimIncremento=new JButton("+");
            JLabel cassettoLabel=new JLabel("Cassetto:");
            JCheckBox cass2=new JCheckBox("2");
            JCheckBox cass3=new JCheckBox("3");
            JLabel tipoCartaLabel=new JLabel("Tipo Carta:");
            JCheckBox formatoA3=new JCheckBox("A3");
            JCheckBox formatoA4=new JCheckBox("A4");
            JLabel orientamentoLabel=new JLabel("Orientamento:");
            JCheckBox orizz=new JCheckBox("Orizzontale(Landscape)");
            JCheckBox vert=new JCheckBox("Verticale(Portrait)");
            JLabel grassettoLabel=new JLabel("Grassetto:");
            JCheckBox grassetto_ChkBx=new JCheckBox("Grassetto");
            JButton registra_btn=new JButton("Registra");
            JButton cambiaFile_btn=new JButton("Cambia File");
            JButton test_btn=new JButton("Test");
            JButton esci_btn=new JButton("Esci");
            
            int flagCassetto;
            private int flagFormatoCarta;
            private int flagOrientamento;
            SimpleDateFormat formatter = new SimpleDateFormat("dd/MMMM/yyyy - hh:mm aaa",Locale.ITALY);
            Date today = new Date();
            String result=formatter.format(today);
    
            
                
            public XPAR() {
            frame.getContentPane();
            frame.add(panelUno);
            frame.setTitle("XPAR");
            panelUno.setPreferredSize(new Dimension(600,600));
            frame.setVisible(true);
            frame.pack();
            frame.setLocationRelativeTo(null);
            frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
           
            layout.row().grid().add(nomeFile).add(campoNomeFile).add(sfogliaFile);
            layout.row().grid().add(dimCarLabel).add(dimCaratteri).add(dimIncremento).add(dimDecremento);
            layout.row().grid().add(altRigheLabel).add(altRighe).add(altIncremento).add(altDecremento);
            layout.row().grid().add(cassettoLabel).add(cass2).add(cass3);
            layout.row().grid().add(tipoCartaLabel).add(formatoA3).add(formatoA4);
            layout.row().grid().add(orientamentoLabel).add(orizz).add(vert);
            layout.row().grid().add(grassettoLabel).add(grassetto_ChkBx);
            layout.row().grid().add(registra_btn,cambiaFile_btn,test_btn,esci_btn);
            
    
    
            esci_btn.addActionListener(new ExitHandler());
            sfogliaFile.addActionListener(new FileBrowseHandler());
            registra_btn.addActionListener(new RegistroDati());
            
    
            cambiaFile_btn.addActionListener(new CambioFile());
           }
           
        public static void main(String arg[])
        {
    
       XPAR x=new XPAR();
       
       }
        public class RegistroDati implements ActionListener,ItemListener {
       public void actionPerformed(ActionEvent e) {
        
           try {
    
            String cattura=
            "cassetto selezionato:"+flagCassetto+"\n"+
            "Tipo Carta: "+flagFormatoCarta+"\n"
            +"Orientamento: "+flagOrientamento+"\n"+
            "Data: "+result;
    
           String xPath="C:"+File.separator+"gpi"+File.separator+"par"+File.separator+"current.psx";
           File f=new File(xPath);
           FileOutputStream fos=new FileOutputStream(xPath);
           byte buf[]=cattura.getBytes();
           fos.write(buf);
           fos.close();
           }
       catch(Exception ex)
       {
               ex.printStackTrace();
           }
         }
       public void itemStateChanged(ItemEvent ie) {
            Object source=ie.getItem();
                if (source==cass2){
                    if(cass2.isSelected()){
                    System.out.print("ciao");
                        }
                    }
                 
           }
    
    
        }
        
        class CambioFile implements ActionListener {
    
            public void actionPerformed(ActionEvent e) {
                JOptionPane jop=new JOptionPane();
               //Object [] option={"Salvare","Non Salvare"};
               int n = JOptionPane.showConfirmDialog(frame,
                       "Vuoi salvare il file aperto precedentemente?",
                       "Salvataggio",
                       JOptionPane.YES_NO_OPTION,
                       JOptionPane.QUESTION_MESSAGE);
    
               if (n==0) {
                 JFileChooser c=new JFileChooser();
                FileNameExtensionFilter filter=new FileNameExtensionFilter("psx Files", "*.psx");
                c.setFileFilter(filter);
                 int rVal=c.showSaveDialog(panelUno);
                 if (rVal==JFileChooser.APPROVE_OPTION) {
                     
                 }
               }
            }
        }
        public class ExitHandler implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                JOptionPane jop=new JOptionPane();
                int n = JOptionPane.showConfirmDialog(frame,
                       "Vuoi salvare il file aperto precedentemente?",
                       "Salvataggio",
                       JOptionPane.YES_NO_OPTION,
                       JOptionPane.QUESTION_MESSAGE);
                
                if (n==0) { // n=0 equivale al tasto Si
                 JFileChooser c=new JFileChooser();
                FileNameExtensionFilter filter=new FileNameExtensionFilter("psx Files", "*.psx");
                c.setFileFilter(filter);
                 int rVal=c.showSaveDialog(panelUno);
                 if (rVal==JFileChooser.APPROVE_OPTION) { 
                 new RegistroDati();
                 }
    
                } else {
                   System.exit(0);
                }
                
            }
        }
    public class FileBrowseHandler implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                File f=new File("C:"+File.separator+"gpi"+File.separator+"par");
                String file=f.getAbsolutePath();
                /*
                JFileChooser jfc=new JFileChooser(f);
                JDialog jd=new JDialog();
                */
                FileDialog fd=new FileDialog(frame,"Apri", FileDialog.LOAD);
                //FileNameExtensionFilter filter=new FileNameExtensionFilter("psx files", "psx");
                fd.setDirectory(file);
                fd.setLocation(100, 100);
                fd.setVisible(true);
                    /*
                jfc.setFileFilter(filter);
                if(f.exists()) jfc.showSaveDialog(null);
                //jfc.showOpenDialog(null);
                *
                */
               }
    
            }
     }

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

    Moderazione

    Spostato nel forum Java.


    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    se evidenziavi i punti in esame era pure meglio

    btw

    codice:
     public void itemStateChanged(ItemEvent ie) {
            Object source=ie.getItem();
                if (source==cass2){
                    if(cass2.isSelected()){
                    System.out.print("ciao");
                        }
                    }
                 
           }
    è un itemStateChanged, non viene scatenato se non cambia lo stato (cioè se non fai prima il check e poi l'uncheck).

    codice:
    public void actionPerformed(ActionEvent e) {
        
           try {
    
            String cattura=
            "cassetto selezionato:"+flagCassetto+"\n"+
            "Tipo Carta: "+flagFormatoCarta+"\n"
            +"Orientamento: "+flagOrientamento+"\n"+
            "Data: "+result;
    
           String xPath="C:"+File.separator+"gpi"+File.separator+"par"+File.separator+"current.psx";
           File f=new File(xPath);
           FileOutputStream fos=new FileOutputStream(xPath);
           byte buf[]=cattura.getBytes();
           fos.write(buf);
           fos.close();
           }
       catch(Exception ex)
       {
               ex.printStackTrace();
           }
         }
    dove valorizzi flagCassetto??

  4. #4
    grzie valia, errore mio.

    se volessi però controllare la checkbox con un ciclo if e ritornare un valore che voglio io quando la flaggo mi restituisce nel file null. sarà colpa del metodo void actionlistener?

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da aerochecker
    grzie valia, errore mio.

    se volessi però controllare la checkbox con un ciclo if e ritornare un valore che voglio io quando la flaggo mi restituisce nel file null. sarà colpa del metodo void actionlistener?
    scusa puoi ripetere? realmente non ho capito che vuoi dire

  6. #6
    codice:
    JLabel cassettoLabel=new JLabel("Cassetto:");
            JCheckBox cass2=new JCheckBox("2");
            JCheckBox cass3=new JCheckBox("3");
    se seleziono la check box cass2 alla pressione del tasto Registra deve in qualche modo memorizzare in un unica variabile es.: flagCassetto il valore 02,
    altrimenti se seleziono la checkbox cass3 al momento della registrazione memorizzerà il valore 03, questi valori automaticamente verranno inseriti in un file di testo.

    se creo la variabile flagCassetto, membro della classe RegistroDati, fuori dal metodo void actionPerformed e la valorizzo con zero non riuscirò a gestirla dentro questo metodo:
    codice:
    public class RegistroDati implements ActionListener,ItemListener {
       public void actionPerformed(ActionEvent e) {
        
           try {
    
            String cattura=
            "cassetto selezionato:"+flagCassetto+"\n"+
            "Tipo Carta: "+flagFormatoCarta+"\n"
            +"Orientamento: "+flagOrientamento+"\n"+
            "Data: "+result;
    
           String xPath="C:"+File.separator+"gpi"+File.separator+"par"+File.separator+"current.psx";
           File f=new File(xPath);
           FileOutputStream fos=new FileOutputStream(xPath);
           byte buf[]=cattura.getBytes();
           fos.write(buf);
           fos.close();
           }
       catch(Exception ex)
       {
               ex.printStackTrace();
           }
         }
       public void itemStateChanged(ItemEvent ie) {
            Object source=ie.getItem();
                if (source==cass2){
                    if(cass2.isSelected()){
                    flagCassetto=02; //non memorizza valore 02, ma rimane 0
                        }
                    }
             }
        }

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    se ho letto bene flagcassetto è un int e come tale memorizza il valore 2 non 02.
    Se vuoi mantenere 02 devi usare una stringa e ovviamente poi parsarla in modo opportuno

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Tra parentesi, le costanti letterali intere, se precedute da uno 0, sono considerate come scritte in notazione ottale.

    Quindi
    codice:
    int mioValore = 010;
    System.out.println( mioValore );
    Stamperà 8.

    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

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da LeleFT
    Tra parentesi, le costanti letterali intere, se precedute da uno 0, sono considerate come scritte in notazione ottale.

    Quindi
    codice:
    int mioValore = 010;
    System.out.println( mioValore );
    Stamperà 8.

    Ciao.
    me l'ero scordato!!!!

    ehehe io avevo fatto la prova con 02 e vedevo appunto 2 (logicamente corretto dal punto di vista notazione ottale) senza pensare appunto alla notazione.
    Grazie per la puntualizzazione, spero di ricordarmene

  10. #10
    impostazioni cassetto2:
    javax.swing.JCheckBox[,208,104,184x24,alignmentX=0.0,alignmentY=0.5,bord er=javax.swing.plaf.BorderUIResource$CompoundBorde rUIResource@767a9224,flags=296,maximumSize=,minimu mSize=,preferredSize=,defaultIcon=,disabledIcon=,d isabledSelectedIcon=,margin=javax.swing.plaf.Inset sUIResource[top=2,left=2,bottom=2,right=2],paintBorder=false,paintFocus=true,pressedIcon=,ro lloverEnabled=true,rolloverIcon=,rolloverSelectedI con=,selectedIcon=,text=2]
    [b]impostazioni cassetto3:]/b]
    javax.swing.JCheckBox[,404,104,184x24,alignmentX=0.0,alignmentY=0.5,bord er=javax.swing.plaf.BorderUIResource$CompoundBorde rUIResource@767a9224,flags=296,maximumSize=,minimu mSize=,preferredSize=,defaultIcon=,disabledIcon=,d isabledSelectedIcon=,margin=javax.swing.plaf.Inset sUIResource[top=2,left=2,bottom=2,right=2],paintBorder=false,paintFocus=true,pressedIcon=,ro lloverEnabled=true,rolloverIcon=,rolloverSelectedI con=,selectedIcon=,text=3]
    Tipo Carta:
    Orientamento:
    dimensioni caratteri: 22
    altezza righe: 10
    Data: 11/dicembre/2010 - 07:00 PM

    questo è quanto viene catturato usando getText() sui due checkbox, non mi piace però la documentazione di java, assai poco chiara, mi costringe a smanettare e perdere tempo.

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.