Вывод значений матрицы в визуальную форму - 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
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д