Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2015, 18:31   #1
Alexandr-
Пользователь
 
Регистрация: 04.03.2013
Сообщений: 79
По умолчанию JavaFX - Создание матрицы в окошке

Здравствуйте.
Пишу программу в Netbeans. Суть в том, что нужно просто перенести код, который я когда-то писал на jave(перемножение 2 симметричных матриц), чтобы он отображался в окошке. Проблема в том, что я очень плохо понимаю, как все работает в Netbeanse. Нашел на форуме, как отобразить в окошке матрицу(код ниже) и теперь вопрос: как сделать, чтобы спрашивался размер матрицы и только тогда она создавалась. Заранее спасибо если кто решит помочь.

Матрица:
Код:
import java.awt.Dimension;
 
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.border.TitledBorder;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableColumnModel;
 
public class MatrixVisualizator extends JFrame {
    
    private static int[][] data = {
        { 1, 2, 3, 4, 5 },
        { 5, 4, 3, 2, 1 },
        { 2, 4, 1, 3, 5 },
        { 4, 3, 5, 1, 2 }
    };
    
    public MatrixVisualizator() {
        setTitle("Matrix Visualizator");
        JPanel panel = new JPanel();
        panel.setBorder(new TitledBorder("Matrix"));
        panel.setPreferredSize(new Dimension(250, 100));
        JTable matrix = createMatrixView(data);
        matrix.setBackground(panel.getBackground());
        panel.add(matrix);
        
        add(panel);
        pack();
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
    
    public JTable createMatrixView(final int[][] data) {
        JTable table = new JTable(new AbstractTableModel() {
            
            @Override
            public Object getValueAt(int rowIndex, int columnIndex) {
                return data[rowIndex][columnIndex];
            }
            
            @Override
            public int getRowCount() {
                return data.length;
            }
            
            @Override
            public int getColumnCount() {
                return data[0].length;
            }
            
            
        });
 
        table.setShowGrid(false);
        table.setEnabled(false);
        
        TableColumnModel tcm = table.getColumnModel();
        for (int i = 0; i < tcm.getColumnCount(); i++) {
            tcm.getColumn(i).setMaxWidth(20);
        }
 
        return table;
    }
    
    public static void main(String[] args) {
        new MatrixVisualizator();
    }
 
}
Полный код на java:
Код:
import java.util.*; 
 
class kursach {
static Scanner scan = new Scanner(System.in);
public static void main(String[] args) {
int i,j,k,counter=1; double n=0; int tmp=0;
System.out.println("vvedite razmer simmetrichnoi matrici");
int count = scan.nextInt();
  n = (Math.sqrt(8 * count + 1) - 1) / 2; 
 int[] a = new int[1000];
 int[] c = new int[1000];
 int[][] b = new int[1000][1000];
 int[][] d = new int[1000][1000];
 int[][] E = new int[1000][1000];
 Random random = new Random();
 
 
   for (i = 1; i <= count; i++){ a[i] = (int)(Math.random()*10);
 
System.out.print(a[i] + " ");
}
System.out.println();
 
 
   for (i = 1; i <= count; i++){ c[i] = (int)(Math.random()*10);
 
System.out.print(c[i] + " ");
}
System.out.println();
 
 
for (i=0;i<=n;i++)
counter=1;
 
 
 for (i=0;i<n;i++)
    for (j=i;j<n;j++) {
        b[i][j]=a[counter];
        b[j][i]=a[counter];
        counter++;
    }
 
   for (i=0;i<n;i++) {
    for (j=0;j<n;j++){
  System.out.print(b[i][j] + "\t"); }
System.out.println();
}
 
 
System.out.println();
 
for (i=0;i<=n;i++)
counter=1;
 
 
 for (i=0;i<n;i++)
    for (j=i;j<n;j++) {
        d[i][j]=c[counter];
        d[j][i]=c[counter];
        counter++;
    }
 
   for (i=0;i<n;i++) {
    for (j=0;j<n;j++){
  System.out.print(d[i][j] + "\t"); }
System.out.println();
}
 
 
System.out.println();
 
for (i=0;i<n;i++){ 
    for (j=0;j<n;j++) { tmp=0;
    for (k=0;k<n;k++){
        tmp+=b[i][k]*d[k][j];}
    E[i][j]=tmp;}}
 
for (i=0;i<n;i++){
for (j=0;j<n;j++){
  System.out.print(E[i][j] + "\t"); }
 
System.out.println(); }
}
}
Alexandr- вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление ColorPicker в JavaFX. kroi Общие вопросы по Java, Java SE, Kotlin 1 30.03.2015 23:28
JAVAFX TableView _Mixer_ Общие вопросы по Java, Java SE, Kotlin 2 20.03.2014 01:23
JavaFx stck Общие вопросы по Java, Java SE, Kotlin 0 19.08.2011 12:17
нужен компилятор, работающий под ДОС (в синем окошке) на виндоус 7 pa6kevi4 Помощь студентам 3 23.03.2010 00:59
как вывести в окошке все выражение ((3+4)*2)^3=2744, а не только конечнный ответ? Lamo Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 19.12.2009 12:55