I am making a program that has 50 questions in it,so you type the question in text field and click the button. If the question is there in the directory, then a popup will display the answer. Now i want to add a button, on which if the user clicks, the person would be able to add his question and answer in it. Adding the question is easy but I cant figure out, how to add the answer. Here's my program
我正在制作一个包含50个问题的程序,因此您在文本字段中键入问题并单击按钮。如果目录中存在问题,则弹出窗口将显示答案。现在我想添加一个按钮,如果用户点击该按钮,该人就可以在其中添加他的问题和答案。添加问题很容易,但我无法弄清楚,如何添加答案。这是我的计划
class te extends JFrame implements ActionListener,MouseListener,KeyListener {
JButton bnt1;
JTextField tf;
JLabel title;
JLabel q1;
JLabel ans1;
JLabel q1f=new JLabel("Question displayed on jframe");
JButton bnt2;
JButton b;
JLabel q2;
JLabel q3;
JButton bnt3;
JButton bnt4;
JLabel q4;
JButton bnt5;
JLabel q5;
JLabel link;
ArrayList<String> items = new ArrayList<String>();
private JButton bu;
JTextField tfu;
JTextField tfu2;
JButton help;
String s;
String ss;
public te() throws Exception {
super("IskcoWare");
this.setUndecorated(true);
this.setExtendedState(MAXIMIZED_BOTH);
tf=new JTextField();
String s;
bnt4=new JButton("Ask");
bnt5=new JButton("Ask");
bnt3=new JButton("Ask");
title=new JLabel("50 Glorious Years Of Iskcon");
title.setFont(new Font("",Font.BOLD+Font.ITALIC,70));
q1.setFont(new Font("",Font.BOLD,25));
bnt1=new JButton("Ask");
bnt1.addActionListener(this);
b=new JButton("Search");
b.setBounds(700,170,150,40);
b.setFont(new Font("",Font.PLAIN,15));
b.setVisible(true);
add(b);
link=new JLabel("<html><a href=\"Something.java\">Click to add your own question</a>");
bnt2=new JButton("Ask");
help=new JButton("Help");
add(help);
help.setBounds(100,710,100,40);
setLayout(null);
tf.setBounds(150,170,450,30);
tf.setForeground(Color.GRAY);
title.setBounds(190,-150,10000,400);
q1.setBounds(100,250, 10000, 100);
bnt1.setBounds(1000,288,70,35);
bnt1.setFont(new Font("",Font.PLAIN,17));
bnt2.setFont(new Font("",Font.PLAIN,17));
bnt2.setBounds(1000,370, 70,35);
q2.setBounds(100,180,400,400);
q2.setFont(new Font("",Font.BOLD,25));
q3.setBounds(100,270,400,400);
q3.setFont(new Font("",Font.BOLD,25));
bnt3.setBounds(1000,460,70,35);
bnt3.setFont(new Font("",Font.PLAIN,17));
bnt4.setBounds(1000,550,70,35);
bnt4.setFont(new Font("",Font.PLAIN,17));
q4.setBounds(100,360,400,400);
q4.setFont(new Font("",Font.BOLD,25));
q5.setBounds(100,450,500,400);
q5.setFont(new Font("",Font.BOLD,25));
bnt5.setBounds(1000,640,70,35);
bnt5.setFont(new Font("",Font.PLAIN,17));
link.setBounds(1000,550,400,400);
link.setFont(new Font("",Font.BOLD + Font.ITALIC,15));;
add(link);
add(tf);
add(title);
add(q1);
add(bnt1);
add(tf);
add(b);
add(bnt3);
add(q3);
add(bnt2);
add(bnt4);
add(q4);
add(bnt5);
add(q5);
bnt5.addActionListener(this);
bnt2.addActionListener(this);
bnt3.addActionListener(this);
bnt4.addActionListener(this);
add(q2);
setSize(10000,730);
setVisible(true);
link.addMouseListener(this);
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
Locale[] locales = Locale.getAvailableLocales();
items.add("Questions");
tf.addMouseListener(this);
tf.setSize(400,37);
tf.addKeyListener(this);
tf.setFont(new Font("",Font.PLAIN,25));
b.addActionListener(new loginButt(tf));
b.addActionListener(this);
setupAutoComplete(tf, items);
help.addActionListener(this);
tf.setColumns(30);
tf.setText("hello");
}
private static boolean isAdjusting(JComboBox cbInput) {
cbInput.setFont(new Font("",Font.PLAIN,20));
new JScrollPane(null,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
if (cbInput.getClientProperty("is_adjusting") instanceof Boolean) {
return (Boolean) cbInput.getClientProperty("is_adjusting");
}
return false;
}
public JScrollPane createScroller()
{
return new JScrollPane(null,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
}
private static void setAdjusting(JComboBox cbInput, boolean adjusting) {
cbInput.putClientProperty("is_adjusting", adjusting);
}
public static void setupAutoComplete(final JTextField tf, final ArrayList<String> items) {
final DefaultComboBoxModel model = new DefaultComboBoxModel();
final JComboBox cbInput = new JComboBox(model)
//
{
public Dimension getPreferredSize() {
return new Dimension(super.getPreferredSize().width, 0);
}
};
setAdjusting(cbInput, false);
for (String item : items) {
model.addElement(item);
}
cbInput.setSelectedItem(null);
cbInput.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (!isAdjusting(cbInput)) {
if (cbInput.getSelectedItem() != null) {
tf.setText(cbInput.getSelectedItem().toString());
}
}
}
});
tf.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
setAdjusting(cbInput, true);
//bla
if (e.getKeyCode() == KeyEvent.VK_ENTER || e.getKeyCode() == KeyEvent.VK_UP || e.getKeyCode() == KeyEvent.VK_DOWN) {
e.setSource(cbInput);
cbInput.dispatchEvent(e);
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
tf.setText(cbInput.getSelectedItem().toString());
cbInput.setPopupVisible(false);
}
}
if (e.getKeyCode() == KeyEvent.VK_ESCAPE) {
cbInput.setPopupVisible(false);
}
setAdjusting(cbInput, false);
}
});
tf.getDocument().addDocumentListener(new DocumentListener() {
public void insertUpdate(DocumentEvent e) {
updateList();
}
public void removeUpdate(DocumentEvent e) {
updateList();
}
public void changedUpdate(DocumentEvent e) {
updateList();
}
private void updateList() {
setAdjusting(cbInput, true);
model.removeAllElements();
String input = tf.getText();
if (!input.isEmpty()) {
for (String item : items) {
if (item.toLowerCase().startsWith(input.toLowerCase())) {
model.addElement(item);
}
}
}
cbInput.setPopupVisible(model.getSize() > 0);
setAdjusting(cbInput, false);
}
});
tf.setLayout(new BorderLayout());
tf.add(cbInput, BorderLayout.SOUTH);
}
This is the the other class
这是另一个班级
public class SubmitButton{
JTextField Input;
String s;
public SubmitButton(JTextField textfield){
Input = textfield;
}
public void actionPerformed(ActionEvent e) {
String q1 = "questions";
if(Input.getText().equals(q1))
{
JOptionPane.showMessageDialog(null,"The answer", "Answer",JOptionPane.WARNING_MESSAGE);
}
}
}
1 个解决方案
#1
1
Simplify your problem.
简化您的问题。
You don't need all that Swing code to solve your sub-problem.
您不需要所有Swing代码来解决您的子问题。
Try it with a command line interface on a simple version of the problem, then fold that into your bigger code base.
在问题的简单版本上使用命令行界面尝试它,然后将其折叠到更大的代码库中。
Computer science is about decomposition. Solve large problems by breaking them into smaller ones.
计算机科学是关于分解的。通过将大问题分解为较小问题来解决大问题。
It sounds like you want to generate a Random number in the range of the length of a List of questions. Generate an index and pull the question.
听起来你想要在问题列表的长度范围内生成一个随机数。生成索引并提出问题。
#1
1
Simplify your problem.
简化您的问题。
You don't need all that Swing code to solve your sub-problem.
您不需要所有Swing代码来解决您的子问题。
Try it with a command line interface on a simple version of the problem, then fold that into your bigger code base.
在问题的简单版本上使用命令行界面尝试它,然后将其折叠到更大的代码库中。
Computer science is about decomposition. Solve large problems by breaking them into smaller ones.
计算机科学是关于分解的。通过将大问题分解为较小问题来解决大问题。
It sounds like you want to generate a Random number in the range of the length of a List of questions. Generate an index and pull the question.
听起来你想要在问题列表的长度范围内生成一个随机数。生成索引并提出问题。