Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 2
Регистрация: 04.11.2015
Сообщений: 28

Не удается корректно запустить

04.11.2016, 14:16. Показов 585. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
package com.company;
 
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
 
import static java.lang.StrictMath.abs;
 
class MatrixCalculation {
    double[][] GetMinor(double[][] matrix, int row, int column) {
        int minorLength = matrix.length - 1;
        double[][] minor = new double[minorLength][minorLength];
        int dI = 0;
        int dJ = 0;
        for (int i = 0; i <= minorLength; i++) {
            dJ = 0;
            for (int j = 0; j <= minorLength; j++) {
                if (i == row) {
                    dI = 1;
                } else {
                    if (j == column) {
                        dJ = 1;
                    } else {
                        minor[i - dI][j - dJ] = matrix[i][j];
                    }
                }
            }
        }
 
        return minor;
 
    }
 
 
        public double CalculateMatrix(double[][] matrix) {
            double calcResult = 0.0;
            if (matrix.length == 2) {
                calcResult = matrix[0][0] * matrix[1][1] - matrix[1][0] * matrix[0][1];
            } else {
                int koeff = 1;
                for (int i = 0; i < matrix.length; i++) {
                    if (i % 2 == 1) {
                        koeff = -1;
                    } else {
                        koeff = 1;
                    }
                    ;
                    calcResult += koeff * matrix[0][i] * this.CalculateMatrix(this.GetMinor(matrix, 0, i));
                }
            }
 
            return calcResult;
        }
 
    }
 
 
 
public class Main extends JFrame {
public Main(String name)  { super(name); }
 
    private static void createAndShowGUI() {
        Main frame = new Main("ContainerDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        final Container contentPane = frame.getContentPane();
        JPanel panel1 = new JPanel();
        JButton b = new JButton("Press");
        JButton c = new JButton("Fill");
        JButton d = new JButton("Test");
        final int[] n = new int[1];
        double a[][] = new double[100][100];
        panel1.add(b);
        panel1.add(c);
        panel1.add(d);
        JTextField[][] visMatrix = new JTextField[100][100];
        Insets ins = frame.getInsets();
        frame.setLayout(null);
        //panel1.setLayout(null);
 
 
        contentPane.add(panel1);
        JPanel panel2 = new JPanel();
        JTextField tf = new JTextField("n");
        panel2.add(tf);
        JLabel j1 = new JLabel("Matrix");
        
 
 
        panel2.add(j2);
        panel2.add(j1);
        final int[] R = new int[1];
 
 
 
        b.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                R[0] = Integer.parseInt(tf.getText());
 
 
 
                final int w = 30;
                final int h = 20;
                for (int i = 0; i < R[0]; i++)
                    for (int j = 0; j < R[0]; ++j) {
                        visMatrix[i][j] = new JTextField();
                        panel1.add(visMatrix[i][j]);
                        visMatrix[i][j].setBounds(ins.left + w * i, ins.top + h * j, w, h);
                        contentPane.add(new JTextField("TextField" + i + " " + j));
                        contentPane.add(visMatrix[i][j]);
                                        }
                                }
        });
        c.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                int R = Integer.parseInt(tf.getText());
                Random r = new Random();
                Integer x;
                for (int i = 0; i < R; i++) {
                    for (int j = 0; j < R; ++j) {
                        x = r.nextInt(100) - 50;
                        visMatrix[i][j].setText(x.toString());
                      a[i][j]=Integer.parseInt(visMatrix[i][j].getText());
                    }
                }
            }
        });
 
//MatrixCalculation mc = new MatrixCalculation();
      //  double Result = mc.CalculateMatrix(a);
 
        d.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JTextField q=new JTextField();
                panel1.add(q);
                q.setBounds(100,100,50,50);
                q.setText(String.valueOf(/* Result */);
 
            }
        });
 
 
 
 
 
        contentPane.add(panel2);
        contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS));
        frame.pack();
        frame.setVisible(true);
    }
 
 
 
 
 
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
                                       @Override
                                       public void run() {
                                           createAndShowGUI();
                                       }
                                   }
 
 
        );
 
    }
 
}

Про код. 11-57 класс считающий определитель матрицы nxn
61-153 задание визуальной матрицы
160- main.

Проблема в том, что в строчках 132-133 пытаюсь посчитать определитель с помощью класса записанного на 11-57 строчках. Если без них, то все хорошо работает, т.е выдает матрицу при нажатии на кнопки. А с ними даже визуально не выдает никакого результата, то ли программа зацикливается, то ли что, понять не могу.
Подскажите, куда в сунуть данный класс или может просто функцией оформить.
P.s задание построить матрицу nxn и найти её определитель.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.11.2016, 14:16
Ответы с готовыми решениями:

Не удается запустить отладку проекта
Добрый вечер всем! Случилась такая проблема, когда отладка - лучший помощник. Так вот, в IDE NetBeans, указываю точку остановы...пытаюсь...

Работа с потоками. Не удается запустить
Не удается запустить на выполнение package threadtest; /** * * @author Comp */ public class ThreadTest implements Runnable {...

Не удается запустить jar-приложение из браузера
Доброго времени суток. установил Tomcat 8.0 создал jar-архив Calculator.jar (запускается двойным кликом) создал Calculator.jnlp,...

2
1 / 1 / 2
Регистрация: 21.03.2016
Сообщений: 21
12.11.2016, 20:13
Глянь этот класс. Может поможет.
Это класс матрицы, в нём есть методы чтения матрицы из файла и нахождение определителя (путём приведения матрицы к ступенчатому виду, без миноров!)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
public class Matrix {
    private double[][] matr;
    private File file;
    private int N;
    public Matrix(int N) {
        this.N = N;
        matr = new double[N][N];
    }
 
    public void setMatr(String fileName) throws FileNotFoundException {
        file = new File(fileName);
        FileReader fileReader = new FileReader(file);
        Scanner in = new Scanner(fileReader);
        for (int i = 0; i < N; i++) {
            for (int j = 0; j < N; j++) {
                matr[i][j] = in.nextInt();
            }
        }
    }
 
    public void showMatr(){
        for (int i = 0; i < N; i++) {
            for (int j = 0; j < N; j++) {
                System.out.print(matr[i][j] + " ");
            }
            System.out.println();
        }
    }
 
    public void SummaStr(int str1, double dig1, int str2, double dig2){
        for (int j = 0; j < N; j++) {
            matr[str2][j] = matr[str1][j] * dig1 + matr[str2][j] * dig2;
        }
    }
 
    public double SearhDeterminant(){
        double determinant = 0;
        for (int k = 0; k < N; k++) {
            for (int l = k+1; l < N; l++) {
                SummaStr(k, (-matr[l][k]), l, matr[k][k]);
            }
        }
        for (int i = 0; i < N; i++) {
            determinant *= matr[i][i];
        }
        if (determinant != 0)
            return determinant;
        else return 0.0;
    }
}
0
0 / 0 / 2
Регистрация: 04.11.2015
Сообщений: 28
13.11.2016, 09:03  [ТС]
Буквально перед тем, как прочитал, сделал вот так. Но все равно, спасибо, я посмотрю!
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 static double CalculateMatrix(double[][] matrix, int t){
        int determinant = 1;
        int exchange = 0;
        for(int l1=0; l1<t-1; ++l1){
            int maxN = l1;
            double maxValue = Math.abs(matrix[l1][l1]);
            for (int l2 = l1+1; l2<t; l2++){
                double value = Math.abs(matrix[l2][l1]);
                if (value > maxValue) {maxN=l2; maxValue=value;}
            }
            if (maxN > l1)
            {
 
                double[] temp = matrix[l1]; matrix[l1]=matrix[maxN]; matrix[maxN]=temp;
                ++exchange;
 
            } else {
                if(maxValue == 0) return maxValue;
            }
            double value = matrix[l1][l1];
            determinant *=value;
 
            for (int l2=l1+1;l2<t; ++l2)
            {
                double k = matrix[l2][l1]/value;
                matrix[l2][l1] = 0;
                for (int c=l1+1; c<t; ++c) matrix[l2][c] -= matrix [l1][c]*k;
 
            }
 
        }
determinant *= matrix[t-1][t-1];
        if (exchange%2!=0) return -determinant; else return determinant;
 
 
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.11.2016, 09:03
Помогаю со студенческими работами здесь

Не удается запустить апплеты через java web start
Здравствуйте. Разбираюсь с java. Никак не могу запустить апплет: // Create a child frame window from within an applet. import...

Не удается корректно запустить модальное окно
старательно пытаюсь вставить код модального окна в инфоблок. подключила все скрипты. а он не работает. подскажите почему!? ...

MS visual Studio 2012 Не удается запустить программу. Не удается найти указаный файл
Перебила винду, установила студию и теперь она не работает..( #include &lt;iostream&gt; #include &lt;locale&gt; #include...

Не удается запустить программу. Не удается найти указанный файл. Microsoft visual studio
Добрый день. Начал работу с программой, написал первую программу. текст приложу ниже. Программа наотрез отказывается выполняться. Выдает...

Не удается запустить программу. не удается найти указаный путь
Что я делаю не так? До этого работала на 7 винде 2012VS и было всё нормально. Но как только перешла на десятку... не могу избавиться от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru