为什么变量在java中没有正确更新?

时间:2016-12-19 04:54:41

标签: java jtextarea

class MyComponent extends React.Component {
  constructor() {
    this.onChangeTextDelayed = _.debounce(this.onChangeText, 2000);
  }

  onChangeText(text) {
    console.log("debouncing");
  }

  render() {
    return <Input onChangeText={this.onChangeTextDelayed} />
  }
}

第12个面板没有显示,它只是在11之前更新变量。它应该在第11个面板text_question之后显示import javax.swing.JFrame; import javax.swing.JLabel; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JButton; import javax.swing.JComponent; import javax.imageio.ImageIO; import java.io.File; import java.io.IOException; import java.awt.*; import javax.swing.ImageIcon; import java.awt.Dimension; import javax.swing.JPanel; import java.awt.GridLayout; import javax.swing.BoxLayout; import java.awt.Component; import java.awt.Container; import javax.swing.JOptionPane; import java.awt.Color; import java.applet.Applet; import javax.swing.JTextArea; //This class is where we set up all the questions. class party{ int panel_number = 0; int party_score = 0; JFrame frame = new JFrame(); String target_word; String user_text; String label_text; JLabel question_frame; JPanel pane; JPanel panel; // public void title_page(){ // JOptionPane.showMessageDialog(null, "Welcome to The Party Project!"); // } public void picture_questions(int question_number){ String photo1; String photo2; String photo3; String photo4; String question_header; if (question_number == 1){ question_header = " Which party appeals to you the most?"; photo1 = "Rooftop.jpg"; photo2 = "CollegeParty.jpg"; photo3 = "Business.jpg"; photo4 = "PoolParty.jpg"; image_question(photo1, photo2, photo3, photo4, question_header); } else if (question_number == 2){ question_header = " What is your favorite game?"; photo1 = "twister.jpg"; photo2 = "ellen.jpg"; photo3 = "bp.jpg"; photo4 = "cornhole.jpg"; image_question(photo1, photo2, photo3, photo4, question_header); } else if (question_number == 3){ question_header = " Which musician do you want to party to?"; photo1 = "GratefulDead.jpg"; photo2 = "justin.jpg"; photo3 = "Taylor.jpg"; photo4 = "Beatles.jpg"; image_question(photo1, photo2, photo3, photo4, question_header); } else if (question_number == 4){ question_header = " Which describes you at a party?"; photo1 = "passedout.jpg"; photo2 = "kissing.jpg"; photo3 = "dancing.jpg"; photo4 = "selfie.jpg"; image_question(photo1, photo2, photo3, photo4, question_header); } else if (question_number == 5){ question_header = " Which is your favorite musician?"; photo1 = "Queen.jpg"; photo2 = "OneD.jpg"; photo3 = "Kanye.jpg"; photo4 = "Chainsmokers.jpg"; image_question(photo1, photo2, photo3, photo4, question_header); } else if (question_number == 6){ question_header = " Which outfit would you wear to a party?"; photo1 = "toga.jpg"; photo2 = "Santa.jpg"; photo3 = "Business.jpg"; photo4 = "Onezie.jpg"; image_question(photo1, photo2, photo3, photo4, question_header); } } public void text_questions(int question_number){ String answer1; String answer2; String answer3; String answer4; String question_header; if (question_number == 1){ answer1 = "Drenched"; answer2 = "<html><body> I like to get a good workout in when I party but not too sweaty</html>"; answer3 = "Not huge into the sweating scene"; answer4 = "Don't make me take off my jacket"; question_header = "How sweaty do you like to get when you party?"; multiple_choice_question(answer1, answer2, answer3, answer4, question_header); } if (question_number == 2){ answer1 = "<html><body> My computer so I could code for the rest of my life</html>"; answer2 = "My crush"; answer3 = "A good book"; answer4 = "My favorite drink"; question_header = "If you were stranded on a desert island, what would you bring?"; multiple_choice_question(answer1, answer2, answer3, answer4, question_header); } if (question_number == 3){ answer1 = "Never eat pizza again"; answer2 = "Have to refer to professors as 'Sire'"; answer3 = "Kiss a live frog"; answer4 = "Have to comment every line of your code"; question_header = "Would you rather..."; multiple_choice_question(answer1, answer2, answer3, answer4, question_header); } if (question_number == 4){ answer1 = "Water"; answer2 = "Beer"; answer3 = "Wine"; answer4 = "Moonshine"; question_header = "What is your favorite drink (21+ only)"; multiple_choice_question(answer1, answer2, answer3, answer4, question_header); } if (question_number == 5){ answer1 = "<html><body>The environment, how could you care about anything else when our globe is heating up at an irreprable speed. No more skiing? WHAT ABOUT THE POLAR BEARS!?!?</html>"; answer2 = "<html><body>Artificial intelligence, Have you seen 2001 a Space Oddesy? Her? Self-Driving Ubers? Computers are taking over and not even Matthew can save us!</html>"; answer3 = "<html><body>Ending gun violence, No other country has even close to as much gun violence as we do. Every statistic shows that owning a gun makes your chances of dying from gun violence much higher!</html>"; answer4 = "Dinosaurs"; question_header = "What are you most passionate about?"; multiple_choice_question(answer1, answer2, answer3, answer4, question_header); } } public void user_question(){ String[] target = {"music", "food", "boys", "girls", "live music", "dancing", "drinks", "good", "fun", "people", "not crowded", "band", "college"}; String question = "In a few words, describe your ideal party."; System.out.println("howdy"); input_question(target, question); } public void image_question(String question_photo1, String question_photo2, String question_photo3, String question_photo4, String label_text){ //This panel will display four images that the user will choose from. panel = new JPanel(); // question_frame.setFont(new Font("Calibri", Font.PLAIN, 20)); JButton button1; JButton button2; JButton button3; JButton button4; frame.setAlwaysOnTop(true); panel.setLayout(new BorderLayout()); question_frame = new JLabel(label_text); panel.add(question_frame, BorderLayout.NORTH); button1 = new JButton(); JPanel inner = new JPanel(); inner.setLayout(new GridLayout(0, 2)); button1.setIcon(new ImageIcon(question_photo1)); //Width: 312 Height: 295 button1.setPreferredSize(new Dimension(100, 100)); button1.setActionCommand("1"); inner.add(button1); button2 = new JButton(); button2.setIcon(new ImageIcon(question_photo2)); button2.setPreferredSize(new Dimension(100, 100)); button2.setActionCommand("2"); inner.add(button2); button3 = new JButton(); button3.setIcon(new ImageIcon(question_photo3)); button3.setPreferredSize(new Dimension(100, 100)); button3.setActionCommand("3"); inner.add(button3); button4 = new JButton(); button4.setIcon(new ImageIcon(question_photo4)); button4.setPreferredSize(new Dimension(100, 100)); button4.setActionCommand("4"); inner.add(button4); panel.add(inner, BorderLayout.CENTER); // ImageIcon icon = new ImageIcon("Alex.jpg"); // fram`e.getContentPane().add(new JLabel(icon), BorderLayout.EAST); panel.setVisible(true); frame.add(panel); frame.toFront(); ActionListener al = new click(); button1.addActionListener(al); button2.addActionListener(al); button3.addActionListener(al); button4.addActionListener(al); frame.setSize(600, 600); frame.setVisible(true); frame.setBackground(Color.WHITE); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void multiple_choice_question(String AnswerA, String AnswerB, String AnswerC, String AnswerD, String label_text){ //This panel displays a 4 answer multiple choice question that they user will choose from. frame = new JFrame(); pane = new JPanel(); pane.setLayout(new BorderLayout()); question_frame = new JLabel(label_text); pane.add(question_frame, BorderLayout.NORTH); JPanel center = new JPanel(); GridLayout grid = new GridLayout(0,2); center.setLayout(grid); pane.add(center, BorderLayout.CENTER); ActionListener al = new click(); addAButton(AnswerA, center, al, "1",1); addAButton(AnswerB, center, al, "2",1); addAButton(AnswerC, center, al, "3",1); addAButton(AnswerD, center, al, "4",1); frame.add(pane); frame.setSize(600, 600); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void input_question(String[] target, String question){ //This panel will display a question and chance for the user to input their answer. frame = new JFrame(); pane = new JPanel(); JTextArea user_input = new JTextArea(25, 25); pane.setLayout(new BorderLayout()); pane.add(user_input, BorderLayout.CENTER); question_frame = new JLabel(question); pane.add(question_frame, BorderLayout.NORTH); ActionListener al = new click(); JButton button = new JButton("I'm Done"); button.addActionListener(al); button.setActionCommand("5"); pane.add(button, BorderLayout.SOUTH); frame.add(pane); frame.setSize(600, 600); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); for (int i = 0; i <target.length; i++){ //user_input.toLowerCase(); System.out.println(user_input.getText()); if (user_input.getText().indexOf(target[i]) >=0){ System.out.println("ho ho ho"); } } } public void party() { panel_number++; System.out.println(panel_number); if (panel_number == 1){ picture_questions(1); } else if(panel_number == 2){ picture_questions(2); } else if(panel_number == 3){ picture_questions(3); } else if (panel_number == 4){ picture_questions(4); } else if(panel_number == 5){ picture_questions(5); } else if(panel_number == 6){ text_questions(1); } else if(panel_number == 7){ text_questions(2); } else if(panel_number == 8){ text_questions(3); } else if(panel_number == 9){ text_questions(4); } else if(panel_number == 10){ text_questions(5); } else if(panel_number == 11){ text_questions(6); } else if (panel_number == 12){ user_question(); } } private static void addAButton(String text, Container container, ActionListener al, String actionCommand, int allignment_number) { JButton button = new JButton(text); button.setAlignmentX(Component.CENTER_ALIGNMENT); container.add(button); button.addActionListener(al); button.setActionCommand(actionCommand); } public static void main(String args[]) { party myGUI = new party(); myGUI.party(); } class ClassParty{ //This class will read txt documents created by users and suggest a party that everyone would enjoy! } class click implements ActionListener{ public void actionPerformed(ActionEvent event){ party partier = new party(); if (event.getActionCommand().equals("1")){ party_score++; } else if (event.getActionCommand().equals("2")){ party_score++; } else if (event.getActionCommand().equals("3")){ party_score++; } else if (event.getActionCommand().equals("4")){ party_score++; } else if (event.getActionCommand().equals("5")){ frame.dispose(); } frame.dispose(); panel.setVisible(false); party(); //System.out.println(party_score); /* creates a GUI that presents the user with a question with clickable answers that gives you the next question when you finish answering. It plays jeapordy theme music and has a picture Alex Trabeck. It has a status bar that tells you how close you are to finishing the program. */ } } } 。此外,user_question未正确使用indexOf来检测用户的目标字。

1 个答案:

答案 0 :(得分:0)

您有6个图片问题和5个文字问题。

为什么没有picture_questions(6);,而是text_questions(6);

为什么您的ActionListener会创建新的派对实例?它并不需要和混淆。

class click implements ActionListener{
   public void actionPerformed(ActionEvent event){
     party partier = new party();
     ....
   }
}

关于使用indexOf()方法来测试用户输入:代码可以工作,但是你在框架构建时测试用户输入,这在用户有机会输入文本之前很久

测试用户输入内容的循环属于动作侦听器。