gpt4 book ai didi

java - 按下按钮后检查文本框中的文本是否与字符串匹配

转载 作者:行者123 更新时间:2023-11-29 03:35:09 25 4
gpt4 key购买 nike

我想创建一个程序,用户按下一个按钮,必须在文本框中输入一个单词,一旦他们输入文本,他们必须按下回车按钮,他们输入的单词将与另一个单词进行检查字符串。我可以让它检查他们输入的字符串,但我不确定我会怎么做,所以用户必须先选择一个按钮,然后输入文本,然后按回车按钮。

将有多个用户可以选择的按钮,它们上面有图像,用户需要在文本框中写下这些图像是什么,以检查单词是否正确,他们将按下另一个按钮来检查。

例如 bag cat house lamp post 上有四个带有图像的按钮,用户选择一个按钮,然后他们需要使用文本框拼写单词,他们按回车键检查文本框中的文本是否与某个字符串匹配。

谢谢

这是我尝试过的:

 public class Textb extends JPanel{

JFrame frame =new JFrame();
JPanel panel =new JPanel();
JButton enter =new JButton("Enter");
JButton wordBtn =new JButton("Cat");
JTextField tb =new JTextField();

public Textb() {

// Panel and button layout

panel.setLayout(null);
panel.setBackground(Color.WHITE);
panel.setCursor( new Cursor(Cursor.HAND_CURSOR) ); // set the cursor to a hand

Insets insets = panel.getInsets();

tb.setVisible(true);
tb.setBounds(200 + insets.left, 5 + insets.top, 110,60);
tb.setBackground(Color.YELLOW);


enter.setLayout(null);
enter.setBounds(10 + insets.left, 5 + insets.top, 110,60);
enter.setBackground(Color.WHITE);
enter.setBorder(BorderFactory.createEmptyBorder());
enter.setFocusPainted( false );

wordBtn.setLayout(null);
wordBtn.setBounds(10 + insets.left, 70 + insets.top, 110,60);
wordBtn.setBackground(Color.WHITE);
wordBtn.setBorder(BorderFactory.createEmptyBorder());
wordBtn.setFocusPainted( false );


panel.add(tb);
panel.add(enter);
panel.add(wordBtn);
frame.add(panel);
frame.setTitle("Matching");
frame.setSize(800, 600);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
frame.setVisible(true);



// This is where i did the action listener
enter.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae)
{
if( ae.getSource().equals(wordBtn) )
{
if(tb.getText().equals("cat")){
tb.setText("Correct");
}
}
}
});
}


public static void main(String[] args) {
new Textb();
}
}

最佳答案

这是一个简单的示例,它根据字符串测试输入并将输出附加到 JTextArea。它甚至使用 LayoutManager,您会发现它比 null 布局有用 1000 倍(至少)。

enter image description here

public class Test {
private static String ENTER = "Enter";
static JButton enterButton;
public static JTextArea output;
public static JTextField input;
static JFrame frame;
static JPanel panel;
public static String testString = "test";

public static void main(String... args)
{
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception ex)
{
ex.printStackTrace();
}
createFrame();
}

public static void createFrame()
{
frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.setOpaque(true);
ButtonListener buttonListener = new ButtonListener();
output = new JTextArea(15, 50);
output.setWrapStyleWord(true);
output.setEditable(false);
JScrollPane scroller = new JScrollPane(output);
scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
JPanel inputpanel = new JPanel();
inputpanel.setLayout(new FlowLayout());
input = new JTextField(20);
enterButton = new JButton("Enter");
enterButton.setActionCommand(ENTER);
enterButton.addActionListener(buttonListener);
// enterButton.setEnabled(false);
input.setActionCommand(ENTER);
input.addActionListener(buttonListener);
DefaultCaret caret = (DefaultCaret) output.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
panel.add(scroller);
inputpanel.add(input);
inputpanel.add(enterButton);
panel.add(inputpanel);
frame.getContentPane().add(BorderLayout.CENTER, panel);
frame.pack();
frame.setLocationByPlatform(true);
// Center of screen
// frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.setResizable(false);
input.requestFocus();
}

public static class ButtonListener implements ActionListener
{

public void actionPerformed(final ActionEvent ev)
{
Thread thread = new Thread()
{

public void run()
{
if (!input.getText().trim().equals(""))
{
String cmd = ev.getActionCommand();
if (ENTER.equals(cmd))
{
output.append(input.getText());
if (input.getText().trim().equals(testString)) output.append(" = " + testString);
else output.append(" != " + testString);
output.append("\n");
}
}
input.setText("");
input.requestFocus();
}
};
thread.start();
}
}
}

关于java - 按下按钮后检查文本框中的文本是否与字符串匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16002647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com