- PR -

Swingでメモ帳を作成中なんですが

投稿者投稿内容
さくらば
大ベテラン
会議室デビュー日: 2002/11/12
投稿数: 145
投稿日時: 2005-06-21 19:21
こんにちは、さくらばです。

引用:

未記入さんの書き込み (2005-06-21 17:31) より:

検索と置換はダイアログボックスを表示させ
色々やってるのですがうまくいきません。
ヒントをお願いします!



簡単な例ですが...
http://www5.airnet.ne.jp/sakuraba/java/laboratory/JDK1.4/NewIO/RegularExpressions/RegularExpressions.html

GUI の例は最後の方にあります。
未記入
常連さん
会議室デビュー日: 2005/06/03
投稿数: 22
投稿日時: 2005-06-21 20:56
みなさん本当にありがとうございます!!

さきほどAの質問も解決できました。
結局、、@と同じようなところで問題にひっかかってしまい
悩んでしまいました。

他の質問なんですが今晩もう少しやって
できないとことがあれば(沢山ありどうですがすみません(泣))
まとめて質問しようと思います。
厚かましいですがよろしくお願いします。
未記入
常連さん
会議室デビュー日: 2005/06/03
投稿数: 22
投稿日時: 2005-06-22 04:00
自分の作り方と参考にしているサンプルの
作り方が違っていてどう対処したらよいか
解からなくなってしまいました。
class SerchAction extends AbstractAction{
のエラーは
public void actionPerformed(ActionEvent e){
の処理をしていなから起こるのだと思いますが
どのように書き直せばよいでしょうか??

またString contents = readContents(reader);
のreaderの変数をどのように宣言
すればよいでしょうか?

------------------------------------------------------------------------
class SerchAction extends AbstractAction{
//検索の選択の設定
SerchAction(){
putValue(NAME, "検索");
//キーボードCtrl+Fで検索ができるようになる。
putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke( //javax.swing.KeyStroke
KeyEvent.VK_P, ActionEvent.CTRL_MASK) //java.awt.event.KeyEvent
);
}


private void search(String regex){

String contents = readContents(reader);

try {

Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(contents);

while (matcher.find()) {
editArea.select(matcher.start(), matcher.end());

int answer = JOptionPane.showConfirmDialog(frame,
"次を検索しますか?",
"PatternReplacer",
JOptionPane.YES_NO_OPTION);
if (answer != JOptionPane.YES_OPTION){
break;
}
}

JOptionPane.showMessageDialog(frame, "検索が終了しました");
} catch (PatternSyntaxException ex) {
System.err.println(ex.getMessage());
ex.printStackTrace();
return;
}
}

}
--------------------------------------------------------------------

エラーの内容

NotePad.SerchAction は abstract でなく、java.awt.event.ActionListener 内の abstract メソッド actionPerformed(java.awt.event.ActionEvent) をオーバーライドしません。

class SerchAction extends AbstractAction{
^
シンボルを見つけられません。
シンボル: 変数 reader
場所 : NotePad.SerchAction の クラス
String contents = readContents(reader);

Odakaz
ベテラン
会議室デビュー日: 2004/05/24
投稿数: 70
投稿日時: 2005-06-22 05:55
ざっくりと眺めただけなので、あまり詳細な事は書けませんが、
引用:

未記入さんの書き込み (2005-06-22 04:00) より:
エラーの内容

NotePad.SerchAction は abstract でなく、java.awt.event.ActionListener 内の abstract メソッド actionPerformed(java.awt.event.ActionEvent) をオーバーライドしません。

class SerchAction extends AbstractAction{
^


検索時にやらせたいことを普通に実装すればいいように思えますが・・・。
例えば、検索ダイアログを出して入力させ、検索を行うとかでしょうか。
さくらばさんのサンプルにも、参考にできそうなところはありました。

引用:

シンボルを見つけられません。
シンボル: 変数 reader
場所 : NotePad.SerchAction の クラス
String contents = readContents(reader);


ここでやっていることの本質は、Matcherを得るためのStringオブジェクトを取得することですから、今回の場合は編集中のファイルの中身というかバッファの中身をcontentsとして扱えばいいのではないでしょうか。

ともあれ、やるべきことの本質を考えずに闇雲にコピーしてきてもハマるだけじゃないでしょうか。

[ メッセージ編集済み 編集者: Odakaz 編集日時 2005-06-22 17:25 ]

スキルアップ/キャリアアップ(JOB@IT)