Merhabalar kendimce bir metin içindeki aradığın kelimeden kaç tane olduğunu söyleyen bir program yapmaya çalıştım.
Programı çalıştırırsanız göreceksiniz(hata vermiyor, sorunu aşağıda söylicem). Örnek metin:
Bu metin güzel bir metin. Bu metin çirkin bir metin.
Şimdi kodları aşağıda veriyorum:
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class findword {
static JFrame win = new JFrame("Find Selected Word");
static JTextArea text = new JTextArea();
static JButton button = new JButton("Find");
public static void main(String[]args) {
win.setSize(800,800);
win.setLayout(null);
text.setBounds(150, 0, 500, 500);
text.setLineWrap(true);
text.setWrapStyleWord(true);
button.setBounds(5, 5, 70, 20);
button.setBorderPainted(false);
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
JFrame f = new JFrame("Find");
f.setSize(400,100);
f.setLayout(null);
JTextField txt = new JTextField();
txt.setBounds(3, 15, 230, 30);
JButton find = new JButton("Find");
find.setBounds(237, 15, 70, 30);
f.add(txt);
f.add(find);
f.setVisible(true);
find.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent x) {
int w = 0;
String word = "";
int valword = 0;
for(int i=0; i< text.getText().length(); i++) {
if(text.getText().charAt(i) == ' ') {
word += text.getText().charAt(i);
System.out.println(word);
w++;
if(w == 1) {
w = 0;
if(word == txt.getText()) {
if(text.getText().charAt(i) == text.getText().length()) {
valword =1;
System.out.println(valword);
break;
}
else {
valword =1;
System.out.println(valword);
continue;
}
}
else {
continue;
}
}
}
}
}
});
}
});
win.add(text);
win.add(button);
win.setVisible(true);
}
}
Programı çalıştırdığınızda metni yazın Find butonuna tıklayın sonra bir Frame daha çıkacak oradada bulmak istediğiniz kelimeyi yazın ve Find butonuna tıklayın. İşte sorun ikinci Find butonunda. Çalışmıyor herhangi bir hata da vermiyor. Sorun büyük ihtimal ile şu aşağıdaki satırlardan birinde.
JButton find = new JButton("Find");
find.setBounds(237, 15, 70, 30);
f.add(txt);
f.add(find);
f.setVisible(true);
find.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent x) {
int w = 0;
String word = "";
int valword = 0;
for(int i=0; i< text.getText().length(); i++) {
if(text.getText().charAt(i) == ' ') {
word += text.getText().charAt(i);
System.out.println(word);
w++;
if(w == 1) {
w = 0;
if(word == txt.getText()) {
if(text.getText().charAt(i) == text.getText().length()) {
valword =1;
System.out.println(valword);
break;
}
else {
valword =1;
System.out.println(valword);
continue;
}
}
else {
continue;
}
}
}
}
}
});