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

Как перезагрузить/обновить Jpanel

18.04.2017, 21:20. Показов 1298. Ответов 0

Студворк — интернет-сервис помощи студентам
При запуске программы в цикле загружается
Java
1
frame.add(TestX1.testX1(Words),c);
при ее завершение цикл повторяется. Но програма в первый ответ засчитывает как true остальные принципиально false.
Чтоб разобраться з проблемой реши проследить за работой добавляя
Java
1
System.out.print("Коментарии");
в итоге выглядит консоль так: (обратите внимание на ответ <-----)

Не по теме:


Тест Nr0
Проверка если все тесты пройдены то =0. Результат:
[1 1 1 1 1 1 ]
SummEror показало: 6
Програма продолжает роботу...
Руультат Тест1
testX1 Запущен и видим
Выбрано слово номер 5
количество ошибок в нем: 1
жеребевка перевода 0
Англ на Рус
Создаеться два потока
myThreadyGreen =false
myThreadyRED =false
s6?? <<<---
Введено ответ s6
srownenije1.equals(srownenije2)true
Ответ правельный

Тест Nr1
Проверка если все тесты пройдены то =0. Результат:
[1 1 1 1 1 0 ]
SummEror показало: 5
Програма продолжает роботу...
Руультат Тест1
testX1 Запущен и видим
Выбрано слово номер 2
количество ошибок в нем: 1
жеребевка перевода 0
Англ на Рус
Создаеться два потока
myThreadyGreen =false
myThreadyRED =false
s3?? <<<---
Введено ответ s3
srownenije1.equals(srownenije2)true
Ответ правельный
s3?? <<<---
Введено ответ s3
srownenije1.equals(srownenije2)false
Ответ неправельный

Тест Nr2
Проверка если все тесты пройдены то =0. Результат:
[1 1 1 1 1 0 ]
SummEror показало: 5
Програма продолжает роботу...
Руультат Тест1
testX1 Запущен и видим
Выбрано слово номер 4
количество ошибок в нем: 1
жеребевка перевода 0
Англ на Рус
Создаеться два потока
myThreadyGreen =false
myThreadyRED =false
s5?? <<<---
Введено ответ s5
srownenije1.equals(srownenije2)true
Ответ правельный
s5?? <<<---
Введено ответ s5
srownenije1.equals(srownenije2)false
Ответ неправельный
s5?? <<<---
Введено ответ s5
srownenije1.equals(srownenije2)false
Ответ неправельный

Тест Nr3
Проверка если все тесты пройдены то =0. Результат:
[1 1 1 1 2 0 ]
SummEror показало: 6
Програма продолжает роботу...
Руультат Тест1
testX1 Запущен и видим
Выбрано слово номер 1
количество ошибок в нем: 1
жеребевка перевода 1
Рус на Англ
Создаеться два потока
myThreadyGreen =false
myThreadyRED =false





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
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.io.FileNotFoundException;
import java.util.Random;
import javax.swing.JFrame;
public class MainClass extends JFrame {
    static boolean p1End = false;
    static String Words[][]={{"s1","transkr1","t1"},
         {"s2","transkr2","t2"},
         {"s3","transkr3","t3"},
         {"s4","transkr4","t4"},
         {"s5","transkr5","t5"},
         {"s6","transkr6","t6"}};
    static int State[][]={{0,0,1},{0,0,1},{0,0,1},{0,0,1},{0,0,1},{0,0,1}};
    static  JFrame frame = new JFrame();
    
    static int SummEror(int[][]a){
        int b=0;
        for (int i = 0; i < a.length; i++) {
            b+=a[i][2];
        }
        return b;
    }
    
   public static void main(String[] arg) throws FileNotFoundException {
     frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
     frame.setVisible(true);
     frame.setLayout(new GridBagLayout());
     
     GridBagConstraints c = new GridBagConstraints();
     Random rand_2=new Random();     
     int totaltest=0;
     for (int i = 0; i < Words.length; i++) {
   
         //*tester для консоли
         System.out.println("\nТест Nr"+totaltest++);
         System.out.println("Проверка если все тесты пройдены то =0. Результат: ");
         System.out.print("[");
         for (int j = 0; j < State.length; j++) {
            System.out.print(State[j][2]+" ");
        }
         System.out.println("]");
         System.out.println("SummEror показало: "+SummEror(State));
         //*tester  
        
         
         
         if(SummEror(State)==0){// если 3 столбец все лементы ==0 то остановить цыкл
                for (int j = 0; j < State.length; j++) {
                    for (int j2 = 0; j2 < State[j].length; j2++) {
                        System.out.print(State[j][j2]+" ");
                    }
                    System.out.println();
                }
                return;
            }
         
         else System.out.println("Програма продолжает роботу...");
         p1End = false;
         //int a=rand_2.nextInt(2);
 
             System.out.println("Руультат Тест1");//************
                                 frame.add(TestX1.testX1(Words),c); 
                                 frame.pack();
 
            do{
                try {
                    Thread.sleep(250);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }                   
            }while(!p1End); //p1End = true в конце роботы 
    }//end For
     
     for (int i = 0; i < State.length; i++) {// show State[][]
        for (int j = 0; j < State[i].length; j++) {
            System.out.print(State[i][j]+" ");
        }
        System.out.println();
    }
         System.exit(0);
         
    } 
   }
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
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Locale;
import java.util.Random;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.LineBorder;
 
public class TestX1 extends JPanel {
    static JButton answer = new JButton("Ответить");
    static JTextField forma = new JTextField();
    static String srownenije2;
    static int numberlist;
 
    
 
    static JPanel testX1(String Au[][]) {
        
        System.out.println("testX1 Запущен и видим");
        JPanel p1 = new JPanel();
        p1.setVisible(true);
        p1.setEnabled(true);
 
        Random random = new Random();
        
        numberlist = 0; 
        
        for (int i = 0; i < MainClass.State.length; i++) {
            numberlist = random.nextInt(MainClass.State.length);
            if(MainClass.State[numberlist][2]>0){
//              KeyboardSwitcher.State[numberlist][2]--;
                break;
            }
            if(MainClass.State[numberlist][2]==0){
                    i--;
                
                }
        
        }
        System.out.println("Выбрано слово номер "+numberlist);
        
        
        System.out.println("количество ошибок в нем: "+MainClass.State[numberlist][2]);
        
        JLabel lb1;
        String srownenije1;
        System.out.print("жеребевка перевода ");
        int word_translate=random.nextInt(2);
        // Locale loc; ***
        System.out.println(word_translate);
        if (word_translate == 1) {
            System.out.println(" Рус на Англ");
            lb1 = new JLabel(Au[numberlist][0], SwingConstants.CENTER);
            srownenije1 = Au[numberlist][2];
            // loc = new Locale("en","EN"); ***
 
        } else {
            System.out.println("Англ на Рус");
 
            lb1 = new JLabel(Au[numberlist][2], SwingConstants.CENTER);
            srownenije1 = Au[numberlist][0];
            // loc = new Locale("ru","RU"); ***
        }
        // p1.setLocale(loc); ***
 
        Dimension btnSize = new Dimension(258, 50);
        Font btnFont = new Font("Console", Font.BOLD, 20);
 
        answer.setPreferredSize(btnSize);
        answer.setForeground(Color.WHITE);
        answer.setFont(btnFont);
        answer.setBackground(new Color(100, 100, 100));
 
        lb1.setPreferredSize(btnSize);
        lb1.setForeground(Color.WHITE);
        lb1.setFont(btnFont);
        lb1.setBackground(new Color(100, 100, 100));
 
        forma.setPreferredSize(btnSize);
        forma.setForeground(Color.BLACK);
        forma.setFont(btnFont);
        forma.setHorizontalAlignment(JTextField.CENTER);
        forma.setText("");
        p1.setBackground(new Color(120, 120, 120, 200));
        p1.setLayout(new GridBagLayout());
        GridBagConstraints c = new GridBagConstraints();
        c.insets = new Insets(5, 5, 5, 5);
        c.gridy = 0;
        p1.add(lb1, c);
        c.gridy++;
        p1.add(forma, c);
        c.gridy++;
        p1.add(answer, c);
 
        p1.setBorder(new LineBorder(Color.white, 1));
        System.out.println("Создаеться два потока");
        Thread myThreadyGreen = new Thread(new Runnable() {
            public void run() // Этот метод будет выполняться в побочном потоке
            {
                forma.setForeground(Color.green);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e1) {
                    e1.printStackTrace();
                }
                forma.setForeground(Color.BLACK);
                forma.setText("");
                p1.setVisible(false);
                
                MainClass.p1End = true;
 
            }
        });
 
        Thread myThreadyRED = new Thread(new Runnable() {
            public void run() // Этот метод будет выполняться в побочном потоке
            {
                forma.setForeground(Color.RED);
                forma.setText(srownenije1);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e1) {
                    e1.printStackTrace();
                }
                forma.setForeground(Color.BLACK);
                forma.setText("");
                p1.setVisible(false);
                
                MainClass.p1End = true;
            }
        });
        
        System.out.println("myThreadyGreen ="+myThreadyGreen.isAlive());
        System.out.println("myThreadyRED ="+myThreadyRED.isAlive());
 
        answer.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println(Au[numberlist][0]+"?? <<<---");
                System.out.println("Введено ответ "+forma.getText()+"");
                srownenije2 = forma.getText();
                System.out.println("srownenije1.equals(srownenije2)"+srownenije1.equals(srownenije2));
                if (srownenije1.equals(srownenije2)) {//Prawilna widpowid
                    System.out.println("Ответ правельный");
//                  myThreadyGreen.start();
//                  try {
//                      Thread.sleep(2000);
//                  } catch (InterruptedException e1) {
//                      e1.printStackTrace();
//                  }
//                  myThreadyGreen.interrupt();
                    
                    p1.setVisible(false);       
                    MainClass.p1End = true;
                    if(MainClass.State[numberlist][2]>0){
                        MainClass.State[numberlist][2]--;
                    }
 
                } else {
                    System.out.println("Ответ неправельный");
//                  Error
//                  forma.setText(srownenije1);
//                  myThreadyRED.start();
//                  try {
//                      Thread.sleep(2000);
//                  } catch (InterruptedException e1) {
//                      e1.printStackTrace();
//                  }
//                  myThreadyRED.interrupt();
                    p1.setVisible(false);
                    p1.setEnabled(false);
                    MainClass.p1End = true;
                    MainClass.State[numberlist][0]++;
                    MainClass.State[numberlist][2]++;
                    if(MainClass.State[numberlist][0]==1)MainClass.State[numberlist][1]++;
                    if(MainClass.State[numberlist][0]==5)MainClass.State[numberlist][1]++;
                    
                }
            }
        });
 
        return p1;
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.04.2017, 21:20
Ответы с готовыми решениями:

Как правильно задать размер JPanel чтобы JFrame при pack() сжимался до размеров JPanel
Подскажите как правильно задать размер JPanel чтобы JFrame при pack() сжимался до размеров JPanel, задание размеров при помощи setSize...

Добавление JPanel на JPanel, не отображаются те, которые добавлены сверху
Здравствуйте. У меня есть панель fon на которой у меня картинка с фоном и 15 панелей на которых нарисованы шарики,пытаюсь добавить панели с...

Удаление JPanel кнопкой на этом же JPanel
Есть JPanel объекты, которые представляют собой панельки с какой - то информацией, на них есть кнопка. Как сделать так, чтобы при нажатии...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.04.2017, 21:20
Помогаю со студенческими работами здесь

Замена JPanel на JPanel в JFrame
У меня есть 3 класса. Первый класс Main наследуется от JFrame и в конструкторе установка размера и добавление JPanel второго класса....

JPanel panel_south=new JPanel(); JTextArea textArea=new JTextArea(); Где ошибка?
JPanel panel_south=new JPanel(); JTextArea textArea=new JTextArea(); Label label=new JLabel(' '); ...

Как закрыть jpanel
Как закрыть jPanel? Специальная клавиша, закрывающая панель. Пропишите пожалуйста код, закрывающий панель!!! Панель скрыта. В пункте...

Как поместить анимацию на JPanel?
Всем привет как можно поместить анимацию на JPanel? Т.е. анимация по умолчанию помещается во JFrame так? И вот, как мне поместить анимацию...

Как нарисовать градиент на JPanel
Доброго времени суток!!! Хочется сделать все красиво, но опыта пока еще не много, а сделать хочется. Помогите. Как на JPanel...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru