Вывод значений матрицы в визуальную форму - Java
Формулировка задачи:
Добрый день. Имеется программа, обрабатывающая матрицу и её визуальное представление в Swing. Интересует один момент: как можно отобразить саму матрицу не в консоли, а в одном из элементов Swing(в каком, в принципе, неважно) по нажатии соответствующей кнопки?
package javaapplication1; import java.util.Random; import java.util.Scanner; import org.apache.log4j.*; import org.apache.log4j.xml.DOMConfigurator; public class JavaApplication1 { private int[][] data; public JavaApplication1 () { data = new int [12][12]; Random r = new Random(); for (int i=0; i<12; i++) for (int j=0; j<12; j++) { data[i][j]=r.nextInt()%25; logger.info(data[i][j]); } logger.info("Матрица создана."); } public void Show_Matrix () { for (int i=0; i<data.length; i++) { for (int j=0; j<data.length; j++) { System.out.print(data[i][j]); System.out.print(' '); } System.out.println(); } logger.info("Матрица выведена на экран."); } public void DoStuff () { for (int i=0; i<data.length; i++) for (int j=0; j<data.length; j++) if (i<=j) { data[i][j] = 0; logger.info(data[i][j]); } logger.info("Матрица преобразована."); } public static Logger logger = LogManager.getLogger(JavaApplication1.class.getName()); public static void main(String[] args) { DOMConfigurator.configure("log4j2.xml"); logger.info("Запуск приложения."); Window window = new Window(); window.setVisible(true); } }
Решение задачи: «Вывод значений матрицы в визуальную форму»
textual
Листинг программы
package javaapplication1; /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ public class Window extends javax.swing.JFrame { /** * Creates new form Window */ private JavaApplication1 variable; public Window() { initComponents(); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jGreeting = new javax.swing.JLabel(); jDescription = new javax.swing.JTextArea(); jRandomizeButton = new javax.swing.JButton(); jDoThingsButton = new javax.swing.JButton(); jExitButton = new javax.swing.JButton(); jDisplayButton = new javax.swing.JButton(); jSeparator1 = new javax.swing.JSeparator(); jScrollPane1 = new javax.swing.JScrollPane(); jDisplayArea = new javax.swing.JEditorPane(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jGreeting.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N jGreeting.setText("Welcome to the program!"); jDescription.setEditable(false); jDescription.setColumns(20); jDescription.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N jDescription.setRows(5); jDescription.setText("This app is very simple. You can randomize your 12x12 matrix by \npressing the \"Randomize\"-Button. \"DoThings\"-Button makes all the \ndiagonal and upper elements of the matrix zero's. \"Exit\"-Button will \nexit from the application."); jRandomizeButton.setText("Randomize"); jRandomizeButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jRandomizeButtonActionPerformed(evt); } }); jDoThingsButton.setText("Do Things"); jDoThingsButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jDoThingsButtonActionPerformed(evt); } }); jExitButton.setText("Exit"); jExitButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jExitButtonActionPerformed(evt); } }); jDisplayButton.setText("Display"); jDisplayButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jDisplayButtonActionPerformed(evt); } }); jDisplayArea.setEditable(false); jScrollPane1.setViewportView(jDisplayArea); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(106, 106, 106) .addComponent(jGreeting)) .addGroup(layout.createSequentialGroup() .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jDescription, javax.swing.GroupLayout.DEFAULT_SIZE, 330, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() .addComponent(jRandomizeButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jDoThingsButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jDisplayButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jExitButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addComponent(jSeparator1) .addComponent(jScrollPane1)))) .addContainerGap(16, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jGreeting) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jDescription, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 128, Short.MAX_VALUE) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jRandomizeButton) .addComponent(jDoThingsButton) .addComponent(jDisplayButton) .addComponent(jExitButton)) .addContainerGap()) ); pack(); }// </editor-fold> private void jRandomizeButtonActionPerformed(java.awt.event.ActionEvent evt) { variable.logger.info("jRandomizeButton нажата."); variable = new JavaApplication1(); System.out.println("Первоначальная матрица: "); variable.Show_Matrix(); System.out.println(' '); } private void jDoThingsButtonActionPerformed(java.awt.event.ActionEvent evt) { variable.logger.info("jDoThingsButton нажата."); variable.DoStuff(); System.out.println("Результирующая матрица: "); variable.Show_Matrix(); System.out.println(' '); } private void jExitButtonActionPerformed(java.awt.event.ActionEvent evt) { variable.logger.info("jExitButton нажата."); variable.logger.info("Выход из приложения."); dispose(); } private void jDisplayButtonActionPerformed(java.awt.event.ActionEvent evt) { variable.logger.info("jDisplayButton нажата."); } /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see [url]http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html[/url] */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(Window.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(Window.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(Window.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(Window.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Window().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JTextArea jDescription; private javax.swing.JEditorPane jDisplayArea; private javax.swing.JButton jDisplayButton; private javax.swing.JButton jDoThingsButton; private javax.swing.JButton jExitButton; private javax.swing.JLabel jGreeting; private javax.swing.JButton jRandomizeButton; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JSeparator jSeparator1; // End of variables declaration }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д