Ayawpo kaseng mapalitan nung question yung nasa loob ng jtextarea wherein dapat po napapalitan kase po nag iterate naman po yung iterator ko na nag a-access ng arraylist ko parang naka intact lang po sya sa unang question na nilagay nung user which is 0 parang siman po tlga sya na iterate ket tama naman po yung logic ko
eto po yung source code ko:
package ACEQUIZ;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class ACEQUIZ{
JFrame ACEQUIZ1,SecondFrame,ThirdFrame,FourthFrame;
JLabel label1, label2, label3, quesLabel, ansLabel, spacer1,spacer2,
playQuesLabel, playAnsLabel, spacerQuestion;
JPanel panelsContainer, panel1, panel2, panel3, startButtonPanel,
secondMainPanel,QandApanel, ThirdMainPanel, playQandApanel;
JButton startButton,addButton, playButton, nextButton;
int i = 1;
private int currentIndex = 0;
String question, answer, UserAnswer;
ArrayList<String> QuestionList = new ArrayList<String>();
ArrayList<String> AnswerList = new ArrayList<String>();
private JTextArea playTextAns;
private JTextArea playTextQues;
Scanner sc = new Scanner(System.in);
public ACEQUIZ(){
// Frame settings
Font headline = new Font("Times New Roman", Font.BOLD, 45);
JFrame.setDefaultLookAndFeelDecorated(true);
ACEQUIZ1 = new JFrame("ACEQUIZ");
ACEQUIZ1.setSize(new Dimension(350, 500));
ACEQUIZ1.setResizable(false);
ACEQUIZ1.setLayout(new BorderLayout());
panelsContainer = new JPanel();
panelsContainer.setBackground(Color.CYAN);
panelsContainer.setLayout(new GridLayout(3, 1));
panelsContainer.setBorder(BorderFactory.createEmptyBorder(70, 30, 30, 30)); // Add 10px padding to all sides
// Create the first JPanel for word "WELCOME"
panel1 = new JPanel();
panel1.setBackground(Color.CYAN);
label1 = new JLabel("WELCOME");
panel1.add(label1);
label1.setFont(headline);
panelsContainer.add(panel1);
// Create the second JPanel for word "TO"
panel2 = new JPanel();
panel2.setBackground(Color.CYAN);
label2 = new JLabel("TO");
panel2.add(label2);
label2.setFont(headline);
panelsContainer.add(panel2);
// Create the third JPanel for word "ACEQUIZ"
panel3 = new JPanel();
panel3.setBackground(Color.CYAN);
label3 = new JLabel("ACEQUIZ");
panel3.add(label3);
label3.setFont(headline);
panelsContainer.add(panel3);
ACEQUIZ1.add(panelsContainer, BorderLayout.CENTER);
startButtonPanel = new JPanel();
startButtonPanel.setBackground(Color.CYAN);
startButtonPanel.setLayout(new GridLayout(0, 1));
startButtonPanel.setBorder(BorderFactory.createEmptyBorder(0, 120, 100, 120));
startButton = new JButton("Start");
startButtonPanel.add(startButton);
startButtonPanel.setFocusable(true);
ACEQUIZ1.add(startButtonPanel, BorderLayout.SOUTH);
ACEQUIZ1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ACEQUIZ1.setLocationRelativeTo(null);
ACEQUIZ1.setVisible(true);
ACEQUIZ1.validate();
startButton.addActionListener(new ActionListener() {
Override
public void actionPerformed(ActionEvent e){
ACEQUIZ1.dispose();
SecondFrame = new JFrame("ACEQUIZ");
SecondFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
SecondFrame.setSize(350, 500);
secondMainPanel = new JPanel();
secondMainPanel.setBackground(Color.CYAN);
Font QandAfont = new Font("Times New Roman", Font.BOLD, 14);
QandApanel = new JPanel();
QandApanel.setBackground(Color.CYAN);
QandApanel.setLayout(new BoxLayout(QandApanel, BoxLayout.Y_AXIS));
quesLabel = new JLabel(i + ".Enter Question:");
quesLabel.setAlignmentX(Component.RIGHT_ALIGNMENT);
quesLabel.setFont(QandAfont);
JTextArea textques = new JTextArea(3, 22);
textques.setLineWrap(true);
textques.setWrapStyleWord(true);
ansLabel = new JLabel(i + ".Enter a Answer:");
ansLabel.setAlignmentX(Component.RIGHT_ALIGNMENT);
ansLabel.setFont(QandAfont);
JTextArea textans = new JTextArea(3, 22);
textans.setLineWrap(true);
textans.setWrapStyleWord(true);
spacer1 = new JLabel(" ");
spacer2 = new JLabel(" ");
// Add the labels and text areas to the panel
QandApanel.add(quesLabel);
QandApanel.add(textques);
QandApanel.add(ansLabel);
QandApanel.add(textans);
QandApanel.add(spacer1);
QandApanel.add(spacer2);
// Create the "Add" and "Play" button
JPanel panelButton = new JPanel(new FlowLayout());
panelButton.setBackground(Color.CYAN);
addButton = new JButton("Add");
addButton.setFocusable(true);
addButton.setPreferredSize(new Dimension(80, 25));
playButton = new JButton("Play");
playButton.setFocusable(true);
playButton.setPreferredSize(new Dimension(80, 30));
panelButton.add(addButton);
panelButton.add(playButton);
QandApanel.add(panelButton);
secondMainPanel.add(QandApanel);
JScrollPane scrollPane = new JScrollPane(secondMainPanel); // Wrap the main panel with a JScrollPane
SecondFrame.add(scrollPane);
SecondFrame.setLocationRelativeTo(null);
SecondFrame.setResizable(false);
SecondFrame.setVisible(true);
SecondFrame.repaint();
SecondFrame.revalidate();
addButton.addActionListener(new ActionListener (){
Override
public void actionPerformed(ActionEvent f){
i++;
question = textques.getText();
answer = textans.getText();
QuestionList.add(question);
AnswerList.add(answer);
quesLabel = new JLabel(i + ".Enter Question:");
quesLabel.setAlignmentX(Component.RIGHT_ALIGNMENT);
quesLabel.setFont(QandAfont);
JTextArea textques = new JTextArea(3, 22);
textques.setLineWrap(true);
textques.setWrapStyleWord(true);
ansLabel = new JLabel(i + ".Enter a Answer:");
ansLabel.setAlignmentX(Component.RIGHT_ALIGNMENT);
ansLabel.setFont(QandAfont);
JTextArea textans = new JTextArea(3, 22);
textans.setLineWrap(true);
textans.setWrapStyleWord(true);
spacer1 = new JLabel(" ");
spacer2 = new JLabel(" ");
QandApanel.add(quesLabel);
QandApanel.add(textques);
QandApanel.add(ansLabel);
QandApanel.add(textans);
QandApanel.add(spacer1);
QandApanel.add(spacer2);
QandApanel.remove(panelButton);
QandApanel.add(panelButton);
SecondFrame.revalidate();
SecondFrame.repaint();
SecondFrame.validate();
}
});
playButton.addActionListener(new ActionListener() {
Override
public void actionPerformed(ActionEvent g) {
question = textques.getText();
answer = textans.getText();
QuestionList.add(question);
AnswerList.add(answer);
SecondFrame.dispose();
ThirdFrame = new JFrame("ACEQUIZ");
ThirdFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ThirdFrame.setSize(350, 500);
ThirdFrame.setLocationRelativeTo(null);
ThirdFrame.setResizable(false);
ThirdFrame.setVisible(true);
ThirdMainPanel = new JPanel();
ThirdMainPanel.setBackground(Color.CYAN);
ThirdMainPanel.setBorder(BorderFactory.createEmptyBorder(110, 0, 0, 0));
playQandApanel = new JPanel();
playQandApanel.setLayout(new BoxLayout(playQandApanel, BoxLayout.Y_AXIS));
playQandApanel.setBackground(Color.CYAN);
playQuesLabel = new JLabel("Question: ");
playQuesLabel.setAlignmentX(Component.RIGHT_ALIGNMENT);
playQuesLabel.setFont(QandAfont);
playTextQues = new JTextArea(3, 30);
playTextQues.setLineWrap(true);
playTextQues.setWrapStyleWord(true);
playTextQues.setText(QuestionList.get(currentIndex));
JScrollPane scrollPane = new JScrollPane(playTextQues);
playTextQues.setEditable(false);
playAnsLabel = new JLabel("Enter a Answer Here: ");
playAnsLabel.setAlignmentX(Component.RIGHT_ALIGNMENT);
playAnsLabel.setFont(QandAfont);
playTextAns = new JTextArea(3, 30);
playTextAns.setLineWrap(true);
playTextAns.setWrapStyleWord(true);
playQandApanel.add(playQuesLabel);
playQandApanel.add(playTextQues);
playQandApanel.add(playAnsLabel);
playQandApanel.add(playTextAns);
JPanel nextButtonPanel = new JPanel();
nextButtonPanel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));
nextButtonPanel.setBackground(Color.CYAN);
nextButton = new JButton("Next");
nextButton.setFocusable(true);
nextButton.setPreferredSize(new Dimension(80, 30));
nextButtonPanel.add(nextButton);
playQandApanel.add(nextButtonPanel);
ThirdMainPanel.add(playQandApanel);
ThirdFrame.add(ThirdMainPanel);
ThirdFrame.revalidate();
ThirdFrame.repaint();
ThirdFrame.validate();
nextButton.addActionListener((ActionEvent h) -> {
if (currentIndex < QuestionList.size() - 1) {
currentIndex++; // Increment the current index
// Get the next question and update the JTextArea
String nextQuestion = QuestionList.get(currentIndex);
playTextQues.setText(nextQuestion);
} else {
// No more questions, display a message or perform any other desired action
JOptionPane.showMessageDialog(null, "No more questions.");
}
});
}
});
}
});
}
public static void main(String[] args){
new ACEQUIZ();
}
}
eto po yung source code ko:
package ACEQUIZ;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class ACEQUIZ{
JFrame ACEQUIZ1,SecondFrame,ThirdFrame,FourthFrame;
JLabel label1, label2, label3, quesLabel, ansLabel, spacer1,spacer2,
playQuesLabel, playAnsLabel, spacerQuestion;
JPanel panelsContainer, panel1, panel2, panel3, startButtonPanel,
secondMainPanel,QandApanel, ThirdMainPanel, playQandApanel;
JButton startButton,addButton, playButton, nextButton;
int i = 1;
private int currentIndex = 0;
String question, answer, UserAnswer;
ArrayList<String> QuestionList = new ArrayList<String>();
ArrayList<String> AnswerList = new ArrayList<String>();
private JTextArea playTextAns;
private JTextArea playTextQues;
Scanner sc = new Scanner(System.in);
public ACEQUIZ(){
// Frame settings
Font headline = new Font("Times New Roman", Font.BOLD, 45);
JFrame.setDefaultLookAndFeelDecorated(true);
ACEQUIZ1 = new JFrame("ACEQUIZ");
ACEQUIZ1.setSize(new Dimension(350, 500));
ACEQUIZ1.setResizable(false);
ACEQUIZ1.setLayout(new BorderLayout());
panelsContainer = new JPanel();
panelsContainer.setBackground(Color.CYAN);
panelsContainer.setLayout(new GridLayout(3, 1));
panelsContainer.setBorder(BorderFactory.createEmptyBorder(70, 30, 30, 30)); // Add 10px padding to all sides
// Create the first JPanel for word "WELCOME"
panel1 = new JPanel();
panel1.setBackground(Color.CYAN);
label1 = new JLabel("WELCOME");
panel1.add(label1);
label1.setFont(headline);
panelsContainer.add(panel1);
// Create the second JPanel for word "TO"
panel2 = new JPanel();
panel2.setBackground(Color.CYAN);
label2 = new JLabel("TO");
panel2.add(label2);
label2.setFont(headline);
panelsContainer.add(panel2);
// Create the third JPanel for word "ACEQUIZ"
panel3 = new JPanel();
panel3.setBackground(Color.CYAN);
label3 = new JLabel("ACEQUIZ");
panel3.add(label3);
label3.setFont(headline);
panelsContainer.add(panel3);
ACEQUIZ1.add(panelsContainer, BorderLayout.CENTER);
startButtonPanel = new JPanel();
startButtonPanel.setBackground(Color.CYAN);
startButtonPanel.setLayout(new GridLayout(0, 1));
startButtonPanel.setBorder(BorderFactory.createEmptyBorder(0, 120, 100, 120));
startButton = new JButton("Start");
startButtonPanel.add(startButton);
startButtonPanel.setFocusable(true);
ACEQUIZ1.add(startButtonPanel, BorderLayout.SOUTH);
ACEQUIZ1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ACEQUIZ1.setLocationRelativeTo(null);
ACEQUIZ1.setVisible(true);
ACEQUIZ1.validate();
startButton.addActionListener(new ActionListener() {
Override
public void actionPerformed(ActionEvent e){
ACEQUIZ1.dispose();
SecondFrame = new JFrame("ACEQUIZ");
SecondFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
SecondFrame.setSize(350, 500);
secondMainPanel = new JPanel();
secondMainPanel.setBackground(Color.CYAN);
Font QandAfont = new Font("Times New Roman", Font.BOLD, 14);
QandApanel = new JPanel();
QandApanel.setBackground(Color.CYAN);
QandApanel.setLayout(new BoxLayout(QandApanel, BoxLayout.Y_AXIS));
quesLabel = new JLabel(i + ".Enter Question:");
quesLabel.setAlignmentX(Component.RIGHT_ALIGNMENT);
quesLabel.setFont(QandAfont);
JTextArea textques = new JTextArea(3, 22);
textques.setLineWrap(true);
textques.setWrapStyleWord(true);
ansLabel = new JLabel(i + ".Enter a Answer:");
ansLabel.setAlignmentX(Component.RIGHT_ALIGNMENT);
ansLabel.setFont(QandAfont);
JTextArea textans = new JTextArea(3, 22);
textans.setLineWrap(true);
textans.setWrapStyleWord(true);
spacer1 = new JLabel(" ");
spacer2 = new JLabel(" ");
// Add the labels and text areas to the panel
QandApanel.add(quesLabel);
QandApanel.add(textques);
QandApanel.add(ansLabel);
QandApanel.add(textans);
QandApanel.add(spacer1);
QandApanel.add(spacer2);
// Create the "Add" and "Play" button
JPanel panelButton = new JPanel(new FlowLayout());
panelButton.setBackground(Color.CYAN);
addButton = new JButton("Add");
addButton.setFocusable(true);
addButton.setPreferredSize(new Dimension(80, 25));
playButton = new JButton("Play");
playButton.setFocusable(true);
playButton.setPreferredSize(new Dimension(80, 30));
panelButton.add(addButton);
panelButton.add(playButton);
QandApanel.add(panelButton);
secondMainPanel.add(QandApanel);
JScrollPane scrollPane = new JScrollPane(secondMainPanel); // Wrap the main panel with a JScrollPane
SecondFrame.add(scrollPane);
SecondFrame.setLocationRelativeTo(null);
SecondFrame.setResizable(false);
SecondFrame.setVisible(true);
SecondFrame.repaint();
SecondFrame.revalidate();
addButton.addActionListener(new ActionListener (){
Override
public void actionPerformed(ActionEvent f){
i++;
question = textques.getText();
answer = textans.getText();
QuestionList.add(question);
AnswerList.add(answer);
quesLabel = new JLabel(i + ".Enter Question:");
quesLabel.setAlignmentX(Component.RIGHT_ALIGNMENT);
quesLabel.setFont(QandAfont);
JTextArea textques = new JTextArea(3, 22);
textques.setLineWrap(true);
textques.setWrapStyleWord(true);
ansLabel = new JLabel(i + ".Enter a Answer:");
ansLabel.setAlignmentX(Component.RIGHT_ALIGNMENT);
ansLabel.setFont(QandAfont);
JTextArea textans = new JTextArea(3, 22);
textans.setLineWrap(true);
textans.setWrapStyleWord(true);
spacer1 = new JLabel(" ");
spacer2 = new JLabel(" ");
QandApanel.add(quesLabel);
QandApanel.add(textques);
QandApanel.add(ansLabel);
QandApanel.add(textans);
QandApanel.add(spacer1);
QandApanel.add(spacer2);
QandApanel.remove(panelButton);
QandApanel.add(panelButton);
SecondFrame.revalidate();
SecondFrame.repaint();
SecondFrame.validate();
}
});
playButton.addActionListener(new ActionListener() {
Override
public void actionPerformed(ActionEvent g) {
question = textques.getText();
answer = textans.getText();
QuestionList.add(question);
AnswerList.add(answer);
SecondFrame.dispose();
ThirdFrame = new JFrame("ACEQUIZ");
ThirdFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ThirdFrame.setSize(350, 500);
ThirdFrame.setLocationRelativeTo(null);
ThirdFrame.setResizable(false);
ThirdFrame.setVisible(true);
ThirdMainPanel = new JPanel();
ThirdMainPanel.setBackground(Color.CYAN);
ThirdMainPanel.setBorder(BorderFactory.createEmptyBorder(110, 0, 0, 0));
playQandApanel = new JPanel();
playQandApanel.setLayout(new BoxLayout(playQandApanel, BoxLayout.Y_AXIS));
playQandApanel.setBackground(Color.CYAN);
playQuesLabel = new JLabel("Question: ");
playQuesLabel.setAlignmentX(Component.RIGHT_ALIGNMENT);
playQuesLabel.setFont(QandAfont);
playTextQues = new JTextArea(3, 30);
playTextQues.setLineWrap(true);
playTextQues.setWrapStyleWord(true);
playTextQues.setText(QuestionList.get(currentIndex));
JScrollPane scrollPane = new JScrollPane(playTextQues);
playTextQues.setEditable(false);
playAnsLabel = new JLabel("Enter a Answer Here: ");
playAnsLabel.setAlignmentX(Component.RIGHT_ALIGNMENT);
playAnsLabel.setFont(QandAfont);
playTextAns = new JTextArea(3, 30);
playTextAns.setLineWrap(true);
playTextAns.setWrapStyleWord(true);
playQandApanel.add(playQuesLabel);
playQandApanel.add(playTextQues);
playQandApanel.add(playAnsLabel);
playQandApanel.add(playTextAns);
JPanel nextButtonPanel = new JPanel();
nextButtonPanel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));
nextButtonPanel.setBackground(Color.CYAN);
nextButton = new JButton("Next");
nextButton.setFocusable(true);
nextButton.setPreferredSize(new Dimension(80, 30));
nextButtonPanel.add(nextButton);
playQandApanel.add(nextButtonPanel);
ThirdMainPanel.add(playQandApanel);
ThirdFrame.add(ThirdMainPanel);
ThirdFrame.revalidate();
ThirdFrame.repaint();
ThirdFrame.validate();
nextButton.addActionListener((ActionEvent h) -> {
if (currentIndex < QuestionList.size() - 1) {
currentIndex++; // Increment the current index
// Get the next question and update the JTextArea
String nextQuestion = QuestionList.get(currentIndex);
playTextQues.setText(nextQuestion);
} else {
// No more questions, display a message or perform any other desired action
JOptionPane.showMessageDialog(null, "No more questions.");
}
});
}
});
}
});
}
public static void main(String[] args){
new ACEQUIZ();
}
}
Attachments
-
You do not have permission to view the full content of this post. Log in or register now.