に機能する。これは、あなたが望む結果を得るための方法ですJDialog
ダイアログに複数の選択肢を追加し、それは私が欲しいもの
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class VocabHelper {
private JFrame mainFrame;
private JPanel mainPanel;
private JPanel animalPanel;
public JDialog animalDialog;
private JLabel titleLbl;
private JLabel subtitle;
//Call main GUI
public VocabHelper() {
mainGUI();
}
//Main Method
public static void main(String[] args) {
VocabHelper vocabHelper = new VocabHelper();
vocabHelper.showActionEvents();
}
//Edit the mainGUI
private void mainGUI() {
mainFrame = new JFrame("VocabHelper");
mainFrame.setSize(500, 500);
/*titleLbl = new JLabel("Vocab Helper", JLabel.CENTER);
subtitle = new JLabel("Choose a category to continue", JLabel.CENTER);
mainFrame.add(titleLbl);
mainFrame.add(subtitle);*/
mainFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent) {
System.exit(0);
}
});
mainPanel = new JPanel();
mainFrame.add(mainPanel);
mainFrame.setVisible(true);
}
//Create quizGUI
public void quizGUI() {
quizDialog = new JDialog();
quizDialog.setName("Quiz 1");
quizDialog.setSize(500,500);
quizDialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
quizDialog.setVisible(false);
addQuizEvent();
}
//add Buttons and listeners
public void showActionEvents() {
JButton quizButton = new JButton("quiz");
JButton biologyButton = new JButton("Biology");
JButton geologyButton = new JButton("Geology");
JButton historyButton = new JButton("History");
JButton sportsButton = new JButton("Sports");
JButton techButton = new JButton("Technology");
quizButton.setActionCommand("Quiz");
biologyButton.setActionCommand("Biology");
geologyButton.setActionCommand("Geology");
historyButton.setActionCommand("History");
sportsButton.setActionCommand("Sports");
techButton.setActionCommand("Technology");
QuizButton.addActionListener(new ButtonClickListener());
biologyButton.addActionListener(new ButtonClickListener());
geologyButton.addActionListener(new ButtonClickListener());
historyButton.addActionListener(new ButtonClickListener());
sportsButton.addActionListener(new ButtonClickListener());
techButton.addActionListener(new ButtonClickListener());
mainPanel.add(QuizButton);
mainPanel.add(biologyButton);
mainPanel.add(geologyButton);
mainPanel.add(historyButton);
mainPanel.add(sportsButton);
mainPanel.add(techButton);
mainFrame.setVisible(true);
}
//add events to quiz dialog this is where i want to create the multiple choice questins the classes will be below.
public void addQuizEvent() {
JButton nextButton = new JButton("Next");
nextButton.setActionCommand("Next");
nextButton.addActionListener(new ButtonClickListener());
quizDialog.add(nextButton);
quizDialog.setVisible(true);
}
//When button quiz is pressed open dialog
private class ButtonClickListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (command.equals("Quiz")) {
quizGUI();
}
}
}
}
//Class tester for the multiple choice im thinking this is what goes in the dialog i just dont know how.
public class QuizTester
{
public static void main(String[] args)
{
//Multiple choice question
ChoiceQuestion second = new ChoiceQuestion();
second.setText("In which country was the inventor of Java born?");
second.addChoice("Australia", false);
second.addChoice("Canada", true);
second.addChoice("Denmark", false);
second.addChoice("United States", false);
//create quiz and add the questions to the quiz then present the quiz
Quiz q = new Quiz();
q.addQuestion(second);
q.presentQuestions();
}
}
//new class for multiple choice logic
import java.util.ArrayList;
/**
A question with multiple choices.
*/
public class ChoiceQuestion {
private ArrayList<String> choices;
/**
Constructs a choice question with no choices.
*/
public ChoiceQuestion()
{
choices = new ArrayList<String>();
}
/**
Adds an answer choice to this question.
@param choice the choice to add
@param correct true if this is the correct choice, false otherwise
*/
public void addChoice(String choice, boolean correct)
{
choices.add(choice);
if (correct)
{
// Convert choices.size() to string
String choiceString = "" + choices.size();
setAnswer(choiceString);
}
}
public void display()
{
// Display the question text
super.display();
// Display the answer choices
for (int i = 0; i < choices.size(); i++)
{
int choiceNumber = i + 1;
System.out.println(choiceNumber + ": " + choices.get(i));
}
}
}
//class for the quiz where the quiz is created.
import java.util.ArrayList;
import java.util.Scanner;
/**
A quiz contains a list of questions.
*/
public class Quiz
{
private ArrayList<Question> questions;
/**
Constructs a quiz with no questions.
*/
public Quiz()
{
questions = new ArrayList<Question>();
}
/**
Adds a question to this quiz.
@param q the question
*/
public void addQuestion(Question q)
{
questions.add(q);
}
/**
Presents the questions to the user and checks the response.
*/
public void presentQuestions()
{
Scanner in = new Scanner(System.in);
for (Question q : questions)
{
q.display();
System.out.print("Your answer: ");
String response = in.nextLine();
System.out.println(q.checkAnswer(response));\
//over here display this question but in the dialog and with bubbles that they can click on.
}
}
}
そして、何あなたの質問はありますか? – FredK
私は本当に私が作成したダイアログで多肢選択式の質問を表示する方法を知りたいと思っています。ボタンを押すと、質問に答えることができるようにしたいと思います。または偽の場合は次のものに進みます。基本的にクラスの例をスイングに取り入れる。ごめんなさい。 – SassyRegards201
あなたの質問にはたくさんのコードがありますが、具体的な質問は3つ以上のオプションを持つ 'JDialog'を持つことです。 – Frakcool