数分前に質問を投稿しましたが、問題を示すために「SSCCE」を投稿するように求められました。私は自分のプログラムを大幅に圧縮したので、いくつかの構造が意味をなさない、または初心者の作業よりもさらに効率が悪いと思われる場合、それは単にその操作の結果です。
現在、私のプログラムは基本的に、ロシア語の動詞活用の配列を集中配列oneRayにコピーする役割を果たしています。ここでのセットアップでは、空白行の上にプロンプトが表示され、その空白行に適切な活用形を入力する必要があります。「送信」ボタンを押すと、配列の回答と照合されるはずですが、自分のせいか理解不足で、正しい回答であることがわかっているものを直接コピーしても「FAIL」というメッセージが表示されます。この行で、入力を取得します。
build1 = new StringBuilder(ssfield1.getText());
これで、要素に対してチェックします:
if(build1.equals(oneRay[pick][1].toLowerCase().replaceAll("\\s","")))ssfield1.setText("CORRECT");
else{ssfield1.setText("FAIL");}
これは、間違った入力テキストフィールドに対して間違った要素をチェックするという単純な問題かもしれませんが、そうではないかもしれないので、要約した「SSCCE」のすべてのコードを次に示します。
それほど長くはありませんが、もちろん自己完結型です (そして非常に単純です): 他に何か必要な場合、またはこれらの質問には遅すぎる場合はお知らせください!
package wbh;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class SwingImplementation_RUS extends JFrame{
String [] [] oneRay;Random random = new Random();
JPanel panel; JTextField field,sfield1,sfield2,ssfield1,ssfield2; JButton buton;
int pick, hold;StringBuilder build1,build2;
public SwingImplementation_RUS(final int subj){
super("To be updated");
final String RUS_1[][]={
{"знать","знаю","знаешь","знает","знает","знает","знаем","знаете","знают",}};
new Thread(new Runnable() {
public void run() {
buton = new JButton("Submit");
setLayout(new GridLayout(3,1,3,3));
panel = new JPanel();panel.setLayout(new GridLayout(5,2,3,3));
field = new JTextField();
sfield1 = new JTextField("Я");sfield2 = new JTextField("Ты");
ssfield1 = new JTextField("");ssfield2 = new JTextField("");
buton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent m) {
System.out.println("CHECKED");
build1 = new StringBuilder(ssfield1.getText());
build2 = new StringBuilder(ssfield2.getText());
called2();}});
Font f = new Font("Arial", Font.BOLD, 75);
field.setFont(f);
add(field);
add(panel);
panel.add(sfield1);panel.add(ssfield1);
panel.add(sfield2);panel.add(ssfield2);
add(buton);
setLocation(500,0);setSize(865, 700);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);
}}).start();
oneRay = new String[RUS_1.length][9];
for(int i = 0; (RUS_1.length) > i; i++){
oneRay[i][0] = RUS_1[i][0];oneRay[i][1] = RUS_1[i][1];
oneRay[i][2] = RUS_1[i][2];}
try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}
hold = oneRay.length;pick = random.nextInt(hold);
field.setText(" "+oneRay[pick][0]);
}
private void called2(){
if(build1.equals(oneRay[pick][1].toLowerCase().replaceAll("\\s","")))ssfield1.setText("CORRECT");
else{ssfield1.setText("FAIL");}
if(build2.equals(oneRay[pick][2].toLowerCase().replaceAll("\\s","")))ssfield2.setText("CORRECT");
else{ssfield2.setText("FAIL");}
}
public static void main (String [] args){
SwingUtilities.invokeLater(new Runnable(){
public void run() {
new SwingImplementation_RUS(1);
}
});
}
}