Java的。 GUI WindowBuilder通过单击按钮从JTextField读取

我正在使用WindowBuilder,我想问一下如何在文本文件中搜索特定单词,我通过单击“ 搜索”按钮进入JTextField ? 我的程序看起来像这样:

图片http://img252.imageshack.us/img252/1410/39931036.png

这是我的JTextFieldJButton

 private void initialize() { frmInformacijaApieMuzikos = new JFrame(); frmInformacijaApieMuzikos.setResizable(false); frmInformacijaApieMuzikos.setIconImage(Toolkit.getDefaultToolkit() .getImage(KDVizualizuotas.class.getResource( "/lt/kvk/i3_2/kalasnikovas_stanislovas/resources/Sidebar-Music-Blue-icon.png"))); frmInformacijaApieMuzikos.setTitle("Muzikos stiliai"); frmInformacijaApieMuzikos.setBounds(100, 100, 262, 368); frmInformacijaApieMuzikos.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); txtStilius = new JTextField(); txtStilius.setBounds(10, 34, 128, 20); txtStilius.setColumns(10); JButton btnIekoti = new JButton("Ie\u0161koti"); btnIekoti.setBounds(146, 36, 89, 19); btnIekoti.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { } }); } 

我有代码“在文本文件中搜索”,它在控制台中工作,但我需要重新编写它:“输入单词到JTextField (不在控制台中),然后单击搜索按钮(不是Enter按钮)找到它”。 我不知道怎么做。

我的代码(这些最后2个代码可以跳过):

 package lt.kvk.i3_2.kalasnikovas_stanislovas; import java.util.Scanner; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Stilius { public static void main(String[] args) { Scanner input = new Scanner(System.in); try { FileReader fr = new FileReader("src/lt/kvk/i3_2/kalasnikovas_stanislovas/Stiliai.txt"); BufferedReader br = new BufferedReader(fr); String stiliuSarasas; while((stiliuSarasas = br.readLine()) != null) { System.out.println(stiliuSarasas); } fr.close(); /** String help = ""; System.out.println("Iveskite stiliaus pavadinima apie kuri ieskote informacijos (daugiau funkciju - Pagalba)"); if ("Pagalba".equalsIgnoreCase(help)) { help = input.nextLine(); Pagalba pagalba = new Pagalba(help); }**/ String kitasStilius = "Taip"; while (!"Ne".equalsIgnoreCase(kitasStilius)) { if ("Taip".equalsIgnoreCase(kitasStilius)) { System.out.println("Iveskite stiliaus pavadinima apie kuri ieskote informacijos"); String stilius = input.nextLine(); Veiksmai stiliausPaieska = new Veiksmai(stilius); } else if ("Ne".equalsIgnoreCase(kitasStilius)) { } else{ System.out.println("Neteisingai pasirinkta."); } System.out.println("Ar norite ieskoti kito stiliaus?"); System.out.println("Iveskite: Taip or Ne"); kitasStilius = input.nextLine(); } } catch (IOException e) { System.out.println("Error:" + e.toString()); } } } 

和其他class级

 package lt.kvk.i3_2.kalasnikovas_stanislovas; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; public class Veiksmai { public Veiksmai(String stilius) throws IOException { BufferedReader bf = new BufferedReader(new FileReader("src/lt/kvk/i3_2/kalasnikovas_stanislovas/Miestai.txt")); int counter = 0; String line; System.out.println("Ieskoma informacija apie " + stilius); ArrayList miestuSarasas = new ArrayList(); String miestas = null; while (( line = bf.readLine()) != null){ if (line.trim().length() == 0) miestas = null; else if (miestas == null) miestas = line; int indexfound = line.indexOf(stilius); if (indexfound > -1) { counter++; miestuSarasas.add(miestas); } } if (counter > 0) { System.out.println(stilius + " turi " + counter + " remejus: " + miestuSarasas); try { File file = new File("src/lt/kvk/i3_2/kalasnikovas_stanislovas/Atsakymas.txt"); if (!file.exists()) { file.createNewFile(); } FileWriter fw = new FileWriter(file.getAbsoluteFile(), true); BufferedWriter bw = new BufferedWriter(fw); bw.write(stilius + " turi " + counter + " remejus: " + miestuSarasas+"\n"); bw.close(); } catch (IOException e) { e.printStackTrace(); } } else { System.out.println("Klaida, nerastas muzikos stilius"); } bf.close(); } public void stabdyti(){ } public void sarasas() throws IOException{ FileReader fr = new FileReader("src/lt/kvk/i3_2/kalasnikovas_stanislovas/Stiliai.txt"); BufferedReader br = new BufferedReader(fr); String stiliuSarasas; while((stiliuSarasas = br.readLine()) != null) { System.out.println(stiliuSarasas); } fr.close(); } } 

请问你能帮帮我吗? 我还是Java的新手。 我尝试了很多,但一切都行不通。

我很长一段时间都做了这个程序,它会自动突出显示JTextField的单词。希望这有助于:

在此处输入图像描述

码:

 import java.awt.Color; import java.awt.event.ActionEvent; import javax.swing.*; import javax.swing.text.*; import javax.swing.event.*; import javax.swing.GroupLayout.*; public class Stringtext extends JFrame implements DocumentListener { private JTextField entry; private JLabel jLabel1; private JScrollPane jScrollPane1; private JLabel status; private JTextArea textArea; final static Color HILIT_COLOR = Color.YELLOW; final static Color ERROR_COLOR = Color.PINK; final static String CANCEL_ACTION = "cancel-search"; final Color entryBg; final Highlighter hilit; final Highlighter.HighlightPainter painter; public Stringtext() { initComponents(); /*code to put text from a file InputStream in = getClass().getResourceAsStream("file2.txt"); try { textArea.read(new InputStreamReader(in), null); } catch (IOException e) { e.printStackTrace(); } */ textArea.setText("hello Mr! please try to post an SSCCE next time otherwise don't you DARE to..."); hilit = new DefaultHighlighter(); painter = new DefaultHighlighter.DefaultHighlightPainter(HILIT_COLOR); textArea.setHighlighter(hilit); entryBg = entry.getBackground(); entry.getDocument().addDocumentListener(this); InputMap im = entry.getInputMap(JComponent.WHEN_FOCUSED); ActionMap am = entry.getActionMap(); im.put(KeyStroke.getKeyStroke("ESCAPE"), CANCEL_ACTION); am.put(CANCEL_ACTION, new CancelAction()); } private void initComponents() { entry = new JTextField(); textArea = new JTextArea(); status = new JLabel(); jLabel1 = new JLabel(); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setTitle("TextFieldDemo"); textArea.setColumns(20); textArea.setLineWrap(true); textArea.setRows(5); textArea.setWrapStyleWord(true); textArea.setEditable(true); jScrollPane1 = new JScrollPane(textArea); jLabel1.setText("Enter text to search:"); GroupLayout layout = new GroupLayout(getContentPane()); getContentPane().setLayout(layout); ParallelGroup hGroup = layout.createParallelGroup(GroupLayout.Alignment.LEADING); SequentialGroup h1 = layout.createSequentialGroup(); ParallelGroup h2 = layout.createParallelGroup(GroupLayout.Alignment.CENTER); h1.addContainerGap(); h2.addComponent(jScrollPane1, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 450, Short.MAX_VALUE); h2.addComponent(status, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 450, Short.MAX_VALUE); SequentialGroup h3 = layout.createSequentialGroup(); h3.addComponent(jLabel1); h3.addPreferredGap(LayoutStyle.ComponentPlacement.RELATED); h3.addComponent(entry, GroupLayout.DEFAULT_SIZE, 321, Short.MAX_VALUE); h2.addGroup(h3); h1.addGroup(h2); h1.addContainerGap(); hGroup.addGroup(GroupLayout.Alignment.TRAILING, h1); layout.setHorizontalGroup(hGroup); ParallelGroup vGroup = layout.createParallelGroup(GroupLayout.Alignment.LEADING); SequentialGroup v1 = layout.createSequentialGroup(); v1.addContainerGap(); ParallelGroup v2 = layout.createParallelGroup(GroupLayout.Alignment.BASELINE); v2.addComponent(jLabel1); v2.addComponent(entry, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE); v1.addGroup(v2); v1.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED); v1.addComponent(jScrollPane1, GroupLayout.DEFAULT_SIZE, 233, Short.MAX_VALUE); v1.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED); v1.addComponent(status); v1.addContainerGap(); //Add the group v1 to the group vGroup vGroup.addGroup(v1); //Create the vertical group layout.setVerticalGroup(vGroup); pack(); } public void search() { hilit.removeAllHighlights(); String s = entry.getText(); if (s.length() <= 0) { message("Nothing to search"); return; } String content = textArea.getText(); int index = content.indexOf(s, 0); if (index >= 0) { // match found try { int end = index + s.length(); hilit.addHighlight(index, end, painter); textArea.setCaretPosition(end); entry.setBackground(entryBg); message("'" + s + "' found. Press ESC to end search"); } catch (BadLocationException e) { e.printStackTrace(); } } else { entry.setBackground(ERROR_COLOR); message("'" + s + "' not found. Press ESC to start a new search"); } } void message(String msg) { status.setText(msg); } public void insertUpdate(DocumentEvent ev) { search(); } public void removeUpdate(DocumentEvent ev) { search(); } public void changedUpdate(DocumentEvent ev) { } class CancelAction extends AbstractAction { public void actionPerformed(ActionEvent ev) { hilit.removeAllHighlights(); entry.setText("boo"); entry.setBackground(entryBg); } } public static void main(String args[]) { SwingUtilities.invokeLater(new Runnable() { public void run() { UIManager.put("swing.boldMetal", Boolean.FALSE); new Stringtext().setVisible(true); } }); } }