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

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

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2015, 19:07   #1
Dumbl-D
Пользователь
 
Регистрация: 25.11.2013
Сообщений: 26
По умолчанию Создания теста

Нужно чтоб при нажатии кнопки Go происходило открытие новой формы, в которой будут выведены результаты теста.
Сложности в понимании того, как подсчитывать кол-во правильных ответов и вывести их в окне формы 2 то есть в форме Result.

Вот текст программы. В ней реализовано только открытие формы самого теста и при нажатии каждой кнопки "ответа" выскакивает окно с "Правильно/Неправильно", при нажатии кнопки Go открывается вторая форма, но я не могу вывести в ней именно результат,. Помогите пожалуйста, продвинуться.

Код:
public class Test extends JFrame {   
   public Test() {
        super("Тестирование студентов");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setSize(400, 400);  
        JLabel v1 = new JLabel("1.Сколько будет 2 в квадрате?");      
        JButton o1 = new JButton("1");
        JButton o2 = new JButton("4");
        JButton o3 = new JButton("-8");  
        JLabel v2 = new JLabel("2.Какой язык программирования вы учите?");        
        JButton o4 = new JButton("Java");
        JButton o5 = new JButton("C++");
        JButton o6 = new JButton("Pascal");       
        JLabel v3 = new JLabel("3.Корень из 25?");       
        JButton o7 = new JButton("12");
        JButton o8 = new JButton("12.5");
        JButton o9 = new JButton("5");      
       JLabel v4 = new JLabel("4.Как переводится слово ''cat'' ?");       
        JButton o10 = new JButton("Кот");
        JButton o11 = new JButton("Собака");
        JButton o12 = new JButton("Кат");    
        JLabel v5 = new JLabel("5.Сколько в треугольнике углов?");      
        JButton o13 = new JButton("4");
        JButton o14 = new JButton("3");
        JButton o15 = new JButton("2");    
        JButton Go = new JButton("Получить результат!");      
        v1.setSize(400,20);
        v2.setSize(400,20);
        v3.setSize(400,20);
        v4.setSize(400,20);
        v5.setSize(400,20);      
        o1.setSize(100,20);
        o2.setSize(100,20);
        o3.setSize(100,20);
        o4.setSize(100,20);
        o5.setSize(100,20);
        o6.setSize(100,20);
        o7.setSize(100,20);
        o8.setSize(100,20);
        o9.setSize(100,20);
        o10.setSize(100,20);
        o11.setSize(100,20);
        o12.setSize(100,20);
        o13.setSize(100,20);
        o14.setSize(100,20);
        o15.setSize(100,20);
        Go.setSize(200, 20);
        v1.setLocation(10,10);
        v2.setLocation(10,60);
        v3.setLocation(10,110);
        v4.setLocation(10,160);
        v5.setLocation(10,210);
        o1.setLocation(10,40);
        o2.setLocation(130,40);
        o3.setLocation(250,40);
        o4.setLocation(10,90);
        o5.setLocation(130,90);
        o6.setLocation(250,90);
        o7.setLocation(10,140);
        o8.setLocation(130,140);
        o9.setLocation(250,140);
        o10.setLocation(10,190);
        o11.setLocation(130,190);
        o12.setLocation(250,190);
        o13.setLocation(10,240);
        o14.setLocation(130,240);
        o15.setLocation(250,240);
        Go.setLocation(90, 300);
        JPanel main_box = new JPanel();
        main_box.setLayout(null);
        main_box.setBorder(new LineBorder(Color.BLACK, 0));
        main_box.setBackground(Color.WHITE); 
        main_box.add(v1);
        main_box.add(v2);
        main_box.add(v3);
        main_box.add(v4);
        main_box.add(v5);
        main_box.add(o1);
        main_box.add(o2);
        main_box.add(o3);
        main_box.add(o4);
        main_box.add(o5);
        main_box.add(o6);
        main_box.add(o7);
        main_box.add(o8);
        main_box.add(o9);
        main_box.add(o10);
        main_box.add(o11);
        main_box.add(o12);
        main_box.add(o13);
        main_box.add(o14);
        main_box.add(o15);
        main_box.add(Go);
        setContentPane(main_box);
        ActionListener otvet1 = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
        String message = "";
			message += "Ваш ответ неправильный!";
			JOptionPane.showMessageDialog(null,message,"Проверка",JOptionPane.PLAIN_MESSAGE);
            }
        };        
        ActionListener otvet2 = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
        String message = "";
			message += "Ваш ответ правильный!";
			JOptionPane.showMessageDialog(null,message,"Проверка",JOptionPane.PLAIN_MESSAGE);
            }
        };
Dumbl-D вне форума Ответить с цитированием
Старый 29.03.2015, 19:11   #2
Dumbl-D
Пользователь
 
Регистрация: 25.11.2013
Сообщений: 26
По умолчанию

Вот продолжение

Код:
        ActionListener otvet3 = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
        String message = "";
			message += "Ваш ответ неправильный!";
			JOptionPane.showMessageDialog(null,message,"Проверка",JOptionPane.PLAIN_MESSAGE);
            }
        };       
        ActionListener otvet4 = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                String message = "";
			message += "Ваш ответ правильный!";
			JOptionPane.showMessageDialog(null,message,"Проверка",JOptionPane.PLAIN_MESSAGE);
            }
        };       
        ActionListener otvet5 = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                String message = "";
			message += "Ваш ответ неправильный!";
			JOptionPane.showMessageDialog(null,message,"Проверка",JOptionPane.PLAIN_MESSAGE);
            }
        };        
      ActionListener otvet6 = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                String message = "";
			message += "Ваш ответ неправильный!";
			JOptionPane.showMessageDialog(null,message,"Проверка",JOptionPane.PLAIN_MESSAGE);
            }
        };       
        ActionListener otvet7 = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
        String message = "";
			message += "Ваш ответ неправильный!";
			JOptionPane.showMessageDialog(null,message,"Проверка",JOptionPane.PLAIN_MESSAGE);
            }
        };    
        ActionListener otvet8 = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
        String message = "";
			message += "Ваш ответ неправильный!";
			JOptionPane.showMessageDialog(null,message,"Проверка",JOptionPane.PLAIN_MESSAGE);
            }
        };     
        ActionListener otvet9 = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
        String message = "";
			message += "Ваш ответ правильный!";
			JOptionPane.showMessageDialog(null,message,"Проверка",JOptionPane.PLAIN_MESSAGE);
            }
        };        
        ActionListener otvet10 = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                String message = "";
			message += "Ваш ответ правильный!";
			JOptionPane.showMessageDialog(null,message,"Проверка",JOptionPane.PLAIN_MESSAGE);
            }
        };        
        ActionListener otvet11 = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                String message = "";
			message += "Ваш ответ неправильный!";
			JOptionPane.showMessageDialog(null,message,"Проверка",JOptionPane.PLAIN_MESSAGE);
            }
        };      
        ActionListener otvet12 = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                String message = "";
			message += "Ваш ответ неправильный!";
			JOptionPane.showMessageDialog(null,message,"Проверка",JOptionPane.PLAIN_MESSAGE);
            }
        };        
        ActionListener otvet13 = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                String message = "";
			message += "Ваш ответ неправильный!";
			JOptionPane.showMessageDialog(null,message,"Проверка",JOptionPane.PLAIN_MESSAGE);
            }
        };        
        ActionListener otvet14 = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                String message = "";
			message += "Ваш ответ правильный!";
			JOptionPane.showMessageDialog(null,message,"Проверка",JOptionPane.PLAIN_MESSAGE);
            }
        };  
        ActionListener otvet15 = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                String message = "";
			message += "Ваш ответ неправильный!";
			JOptionPane.showMessageDialog(null,message,"Проверка",JOptionPane.PLAIN_MESSAGE);
            }
        };        
        ActionListener testme = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                Result frame = new Result();
                    frame.setTitle("Результаты");
                    frame.setVisible(true);
            }
        };           
        o1.addActionListener(otvet1);
        ... 
        o15.addActionListener(otvet15);
        Go.addActionListener(testme);
             }
}
Dumbl-D вне форума Ответить с цитированием
Старый 29.03.2015, 19:12   #3
Dumbl-D
Пользователь
 
Регистрация: 25.11.2013
Сообщений: 26
По умолчанию

Ну и вторая форма

И вторая форма

Код:
 
public class Result extends JFrame{  
    public Result() {
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setBackground(Color.WHITE); 
        setSize(300, 200);
        int result=0;
        JLabel area = new JLabel();
                    area.setSize(100, 100);
                    area.setLocation(30,10);
                        area.setText("Ваш результат: ");
                        add(area);
 }
}
Dumbl-D вне форума Ответить с цитированием
Старый 30.03.2015, 09:57   #4
BleStaR
Форумчанин
 
Регистрация: 25.09.2009
Сообщений: 234
По умолчанию

Класс Test
Код:
ActionListener testme = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                Result frame = new Result();
                frame.setResult(result); // в result сохраните количество верных ответов
                    frame.setTitle("Результаты");
                    frame.setVisible(true);
            }
        };
Класс Result
Код:
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Result extends JFrame{
    
    private final JLabel area;
    
    public Result() {
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setBackground(Color.WHITE); 
        setSize(300, 200);
        area = new JLabel();
        area.setSize(100, 100);
        area.setLocation(30,10);
        add(area);
    }
    
    public void setResult(int value) {
        area.setText("Ваш результат: " + value);
    }
}
BleStaR вне форума Ответить с цитированием
Старый 30.03.2015, 13:20   #5
Dumbl-D
Пользователь
 
Регистрация: 25.11.2013
Сообщений: 26
По умолчанию

Цитата:
Сообщение от BleStaR Посмотреть сообщение
Класс Test
Код:
                frame.setResult(result); // в result сохраните количество верных ответов
А где можно инициализировать этот result и как именно сохранить кол-во правильных ответов, подскажите пожалуйста? Например, если нажата кнопка 01 то мы добавляем к результату 1 и т.д.
Dumbl-D вне форума Ответить с цитированием
Старый 31.03.2015, 08:54   #6
BleStaR
Форумчанин
 
Регистрация: 25.09.2009
Сообщений: 234
По умолчанию

1)
Код:
public class Test extends JFrame {

    private int answerValid = 0;
2)
Код:
ActionListener otvet2 = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                String msg = "Ваш ответ правильный!";
                answerValid++;
                JOptionPane.showMessageDialog(null,msg,"Проверка",JOptionPane.PLAIN_MESSAGE);
            }
        };
3)
Код:
ActionListener testme = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                Result frame = new Result();
                frame.setResult(answerValid);
                frame.setTitle("Результаты");
                frame.setVisible(true);
            }
        };
Не забудьте предусмотреть необходимость возможность определения повторного ответа на один и тот же вопрос (т.е. если вы дважды нажали на верную кнопку в одном вопросе).

P.S. подобного рода тесты лучше делать через JCheckBox, чем через кнопки.
BleStaR вне форума Ответить с цитированием
Старый 31.03.2015, 15:56   #7
Dumbl-D
Пользователь
 
Регистрация: 25.11.2013
Сообщений: 26
По умолчанию

Спасибо большое, вы очень помогли.
Dumbl-D вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос из теста PumbaP Общие вопросы C/C++ 5 23.03.2015 13:03
Обновление поля формы после создания новой записи создания romanln2012 Microsoft Office Access 2 09.08.2012 14:12
Написание в Delphi программы для создания и прохождения теста. Fenrix Помощь студентам 2 15.11.2011 07:18
Подскажыте програму для создания gif-анимаций, которые после создания не теряют четкости pufystyj Софт 1 24.02.2011 01:50
Builder 6 создания теста Sergey30q Помощь студентам 2 28.05.2009 11:09