Výsledky 1 až 6 z 6

Téma: [Java]{Lama dotaz}Nacitani matice v GUI

Hybrid View

Předcházející příspěvek Předcházející příspěvek   Další příspěvek Další příspěvek
  1. #1
    Member
    Založen
    07.10.2002
    Bydliště
    Kyjov/Brno/Praha
    Věk
    41
    Příspěvky
    214
    Vliv
    280

    Standardní [Java]{Lama dotaz}Nacitani matice v GUI

    Cau muzete mi nekdo prosim poradit jak na nacitani matice v Jave, pri pouziti grafickeho rozhrani(trida awt)?
    Zkousel jsem uz spoustu veci, tohle je moje posledni verze, ale porad to nejede(melo by to fungovat tak ze kazde zadavane cislo napisu do TextFieldu t, potvrdim ho tlacitkem a ono se ulozi do matice, ale nebranim se ani jinym navrhum reseni)

    Tohle je ta nacitaci trida:
    Kód:
    class Nacti
          implements ActionListener {
        private int cislo;
        private TextField t;
        public Nacti(TextField t, int cislo) {
          this.cislo = cislo;
          this.t = t;
        }
    
        public void actionPerformed(ActionEvent e) {
         // try {
            int k = 0;
    
            for &#40;int i = 0; i < pom.length; i++&#41; &#123;
              for &#40;int j = 0; j < pom&#91;i&#93;.length; j++&#41; &#123;
    
                System.out.println&#40;"Zadejte prvek matice&#58; "&#41;;
                t.select&#40;k,k+1&#41;;
                pom&#91;i&#93;&#91;j&#93; = Int.parseInt&#40;t.getSelectedText&#40;&#41;&#41;;
                System.out.println&#40;t.getSelectedText&#40;&#41;&#41;;
                k++;
              &#125;
    
            &#125;
            show&#40;pom&#41;;&#125;
    Toho System.out... si nevsimejte, to jeste predelam, ted musim vyresit aby fungovalo to nacitani, show je metoda pro vypis te matice, pom je dvourozmerne pole, jak uz jste si jiste vsimli
    Diky vsem za rady
    FUN: Core i5-2500K, CM Hyper 212+,ASUS P8Z68-V PRO, CORSAIR 8GB DD3 1333MHz, ASUS ENGTX560 Ti DCII 1GB, Samsung F1 1TB, 2x2TB WD RAID 1, WD MyBook Premium ES 500GB, Samsung SH-S183L, Seasonic S12 430W, Fractal Define R2 & HP LP2475w, Logitech Z-5400, Logitech Cordless Desktop MX5500 Revolution
    WORK1:Lenovo T61 - C2D T9300, 2x2GB DDR2 533 MHz, 80GB Intel X25-M, quadro nvs 140M 128MB, DVD+-RW DL, 15.4'' WSXGA+, TPM + FPR, Win7 Pro
    WORK2:MacBook Pro - Core i7 2720QM 2.2 GHz, 8GB DDR3, 180GB OCZ Vertex2, Radeon 6750M 1GB, 15.4'' WSXGA+ glossy, Mac OS X Lion

  2. #2

    Standardní

    Nic ve zlem, ale to cos vytvoril mi pripada dost zmatene. Ve zpracovani udalosti v tom cyklu nacitat matici nemuzes - ta udalost se vztahuje k zadani jedine hodnoty. Potom bys jeste musel nejak resit, ktery je to radek a sloupec.

  3. #3

    Standardní

    Zkus tohle - je to naklikane behem 5ti minut, takze si s tim muzes vyhrat lepe. Hodnoty se zadavaji do JTable, po stisku tlacitka se obsah matice vypise na konzoli. Rozmery matice jsou v konstantach na zacatku. Pokud je tam chybny vstup, doplni se nula.

    Kód:
    /*
     * Qwert.java
     *
     * Created on 9. květen 2004, 10&#58;24
     */
    
    /**
     *
     * @author  user
     */
    public class Qwert extends javax.swing.JDialog &#123;
        private static final int COLS = 5;
        private static final int ROWS = 10;
        
        
        /** Creates new form Qwert */
        public Qwert&#40;java.awt.Frame parent, boolean modal&#41; &#123;
            super&#40;parent, modal&#41;;
            initComponents&#40;&#41;;
            initComponents2&#40;&#41;;
        &#125;
        
        private void initComponents2&#40;&#41; &#123;
            setupTable&#40;ROWS,COLS&#41;;
        &#125;
        
        protected int&#91;&#93;&#91;&#93; createArray&#40;&#41; &#123;
            try &#123;
                int rows = jTable1.getRowCount&#40;&#41;;
                int cols = jTable1.getColumnCount&#40;&#41;;
                
                int&#91;&#93;&#91;&#93; ret = new int&#91;rows&#93;&#91;cols&#93;;
                for&#40;int i=0; i<rows; i++&#41;
                    for&#40;int j=0; j<cols; j++&#41; &#123;
                        int value;
                        Object oValue = jTable1.getValueAt&#40;i,j&#41;;
                        try &#123;
                            value = &#40;oValue!=null&#41; ? Integer.parseInt&#40;jTable1.getValueAt&#40;i,j&#41;.toString&#40;&#41;&#41; &#58; 0;
                        &#125; catch &#40;NumberFormatException nfe&#41; &#123;
                            value = 0;
                        &#125;
                        ret&#91;i&#93;&#91;j&#93; = value;
                    &#125;
                
                return ret;
            &#125; catch &#40;Exception e &#41; &#123;
                e.printStackTrace&#40;&#41;;
                return null;
            &#125;
        &#125;
        
        protected void test&#40;&#41; &#123;
            int&#91;&#93;&#91;&#93; matice = createArray&#40;&#41;;
            for&#40;int i=0; i<matice.length; i++&#41; &#123;
                int&#91;&#93; row = matice&#91;i&#93;;
                for&#40;int j=0; j<row.length; j++&#41; &#123;
                    System.out.print&#40;row&#91;j&#93;+"|\t"&#41;;
                &#125;
                System.out.println&#40;""&#41;;
            &#125;
        &#125;
        
        protected void setupTable&#40;int _rows, int _cols&#41; &#123;
            Object&#91;&#93;&#91;&#93; aoData = new Object&#91;_rows&#93;&#91;_cols&#93;;
            String&#91;&#93; aCols = new String&#91;_cols&#93;;
            for&#40;int i=0; i<_cols; i++&#41; aCols&#91;i&#93; = Integer.toString&#40;i&#41;;
            jTable1.setModel&#40;new javax.swing.table.DefaultTableModel&#40;
            aoData,
            aCols
            &#41;&#41;;
        &#125;
        
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING&#58; Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        private void initComponents&#40;&#41; &#123;
            jPanel1 = new javax.swing.JPanel&#40;&#41;;
            jButton1 = new javax.swing.JButton&#40;&#41;;
            jScrollPane1 = new javax.swing.JScrollPane&#40;&#41;;
            jTable1 = new javax.swing.JTable&#40;&#41;;
    
            addWindowListener&#40;new java.awt.event.WindowAdapter&#40;&#41; &#123;
                public void windowClosing&#40;java.awt.event.WindowEvent evt&#41; &#123;
                    closeDialog&#40;evt&#41;;
                &#125;
            &#125;&#41;;
    
            jPanel1.setLayout&#40;new java.awt.FlowLayout&#40;java.awt.FlowLayout.RIGHT&#41;&#41;;
    
            jButton1.setText&#40;"nacti"&#41;;
            jButton1.addActionListener&#40;new java.awt.event.ActionListener&#40;&#41; &#123;
                public void actionPerformed&#40;java.awt.event.ActionEvent evt&#41; &#123;
                    jButton1ActionPerformed&#40;evt&#41;;
                &#125;
            &#125;&#41;;
    
            jPanel1.add&#40;jButton1&#41;;
    
            getContentPane&#40;&#41;.add&#40;jPanel1, java.awt.BorderLayout.NORTH&#41;;
    
            jScrollPane1.setViewportView&#40;jTable1&#41;;
    
            getContentPane&#40;&#41;.add&#40;jScrollPane1, java.awt.BorderLayout.CENTER&#41;;
    
            java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit&#40;&#41;.getScreenSize&#40;&#41;;
            setBounds&#40;&#40;screenSize.width-200&#41;/2, &#40;screenSize.height-250&#41;/2, 200, 250&#41;;
        &#125;
        
        private void jButton1ActionPerformed&#40;java.awt.event.ActionEvent evt&#41; &#123;
            // Add your handling code here&#58;
            test&#40;&#41;;
        &#125;
        
        /** Closes the dialog */
        private void closeDialog&#40;java.awt.event.WindowEvent evt&#41; &#123;
            //setVisible&#40;false&#41;;
            System.exit&#40;0&#41;;
        &#125;
        
        /**
         * @param args the command line arguments
         */
        public static void main&#40;String args&#91;&#93;&#41; &#123;
            new Qwert&#40;new javax.swing.JFrame&#40;&#41;, true&#41;.show&#40;&#41;;
        &#125;
        
        
        // Variables declaration - do not modify
        private javax.swing.JButton jButton1;
        private javax.swing.JPanel jPanel1;
        private javax.swing.JScrollPane jScrollPane1;
        private javax.swing.JTable jTable1;
        // End of variables declaration    
    &#125;

  4. #4
    Member
    Založen
    07.10.2002
    Bydliště
    Kyjov/Brno/Praha
    Věk
    41
    Příspěvky
    214
    Vliv
    280

    Standardní

    Diky, vyzkousim, bohuzel swing nemuzem pouzivat, pouze awt, ale pokusim se to predelat.. Sendik
    FUN: Core i5-2500K, CM Hyper 212+,ASUS P8Z68-V PRO, CORSAIR 8GB DD3 1333MHz, ASUS ENGTX560 Ti DCII 1GB, Samsung F1 1TB, 2x2TB WD RAID 1, WD MyBook Premium ES 500GB, Samsung SH-S183L, Seasonic S12 430W, Fractal Define R2 & HP LP2475w, Logitech Z-5400, Logitech Cordless Desktop MX5500 Revolution
    WORK1:Lenovo T61 - C2D T9300, 2x2GB DDR2 533 MHz, 80GB Intel X25-M, quadro nvs 140M 128MB, DVD+-RW DL, 15.4'' WSXGA+, TPM + FPR, Win7 Pro
    WORK2:MacBook Pro - Core i7 2720QM 2.2 GHz, 8GB DDR3, 180GB OCZ Vertex2, Radeon 6750M 1GB, 15.4'' WSXGA+ glossy, Mac OS X Lion

  5. #5

  6. #6
    Member
    Založen
    07.10.2002
    Bydliště
    Kyjov/Brno/Praha
    Věk
    41
    Příspěvky
    214
    Vliv
    280

    Standardní

    Citace Původně odeslal viki_
    A proc ?
    Jo, to se me neptej, proste je to tak...vetsina skupin to ma jen doporucene, ale nas cvicici si usmyslel ze swing proste pouzivat nesmime To vis, FEL
    FUN: Core i5-2500K, CM Hyper 212+,ASUS P8Z68-V PRO, CORSAIR 8GB DD3 1333MHz, ASUS ENGTX560 Ti DCII 1GB, Samsung F1 1TB, 2x2TB WD RAID 1, WD MyBook Premium ES 500GB, Samsung SH-S183L, Seasonic S12 430W, Fractal Define R2 & HP LP2475w, Logitech Z-5400, Logitech Cordless Desktop MX5500 Revolution
    WORK1:Lenovo T61 - C2D T9300, 2x2GB DDR2 533 MHz, 80GB Intel X25-M, quadro nvs 140M 128MB, DVD+-RW DL, 15.4'' WSXGA+, TPM + FPR, Win7 Pro
    WORK2:MacBook Pro - Core i7 2720QM 2.2 GHz, 8GB DDR3, 180GB OCZ Vertex2, Radeon 6750M 1GB, 15.4'' WSXGA+ glossy, Mac OS X Lion

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •