JEditorPaneでwebページを表示

このQ&Aのポイント
  • JEditorPaneでwebページを表示する方法について質問です。
  • 現在、テキストフィールドからコンボボックスに変更する方法を教えてください。
  • getText()とsetText()の部分をコンボボックスに変更する必要があります。
回答を見る
  • ベストアンサー

JEditorPaneでwebページを表示

現在、テキストフィールドにアドレスを入力して そのウェブページをJEditorPaneに表示するようにしているんですが、これをテキストフィールドからコンボボックスに変更したいのですがgetText()とsetTex()のところをコンボボックスに変更した場合にどのように記述すればよいでしょうか?? JEditorPane html = new JEditorPane(); String[] choise ={"http://","http://www.excite.co.jp/","http://news.goo.ne.jp/", "http://www.google.co.jp/","http://www.excite.co.jp/", }; JComboBox cb = new JComboBox(choise); JTextField tf1=newJTextField"http://www.google.co.jp/"); tf1.addActionListener(this); public void actionPerformed(ActionEvent e) { try { html.setPage(tf1.getText()); } catch(Exception err) {} } public void hyperlinkUpdate(HyperlinkEvent e) { if (e.getEventType() != HyperlinkEvent.EventType.ACTIVATED) return; String url = e.getURL().toString(); tf1.setText(url); try { html.setPage(url); } catch(Exception err) { }

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.1

JComboBoxの使い方なら以下を参考にしてみては? http://www.javadrive.jp/tutorial/jlistjtree1/index2.html

参考URL:
http://www.javadrive.jp/tutorial/jlistjtree1/index2.html
nilyannko
質問者

お礼

いじりまくってたら、なぜかできました!(笑 ありがとうございます

nilyannko
質問者

補足

try { html.setPage((String)cb.getSelectedItem()); } catch(Exception err) { ((String)cb.getSelectedItem()を使い選択した アイテムリンクを表示するようになったんですが hyperlinkUpdateの渡し方が解からず、 コンボボックスで選択したサイトのリンク先を クリックしてもページが移動できません! どうしたらよいでしょうか(泣

関連するQ&A

  • JEditorPaneでwebページを表示

    JEditorPaneを使ってwebページを表示させて いるのですが、コンボボックスの選択したアドレスのwebページの表示はできるのですが、検索エンジンを 使って検索してもまったく反応がありません。 何か他のコードを書きたさなければならないのでしょうか? ------------------------------------ JEditorPane html = new JEditorPane(); String[] choise ={"http://news.goo.ne.jp/", "http://www.google.co.jp/","http://www.excite.co.jp/", "http://headlines.yahoo.co.jp/hl",}; JComboBox cb = new JComboBox(choise); html.addHyperlinkListener(this); html.setContentType("text/html"); html.setEditable(false); cb.setEditable(true); public void actionPerformed(ActionEvent e) { try { html.setPage((String)cb.getSelectedItem()); } catch(Exception err) { JOptionPane.showMessageDialog( this,"読み込みエラーが発生しました", "エラー", JOptionPane.ERROR_MESSAGE); } } public void hyperlinkUpdate(HyperlinkEvent e) { if (e.getEventType() != HyperlinkEvent.EventType.ACTIVATED) return; String url = e.getURL().toString(); try { html.setPage(url); } catch(Exception err) { } ---------------------------------------

    • ベストアンサー
    • Java
  • Undo/Redo機能の実装

    swingで作っているブラウザーに進むと 戻るの機能を実装したいのですが、 なかなかブラウザーにこの機能をつけたサンプルが みつからなくて、どなたか教えていただけないでしょうか? RedoAction redoAction = new RedoAction(); UndoAction undoAction = new UndoAction(); mn2.add(redoAction); mn2.add(undoAction); class RedoAction extends AbstractAction{ RedoAction(){ putValue(NAME, "進む"); } public void actionPerformed(ActionEvent e){ } } class UndoAction extends AbstractAction{ UndoAction(){ putValue(NAME, "戻る"); } public void addDocument(String text, String type, String title) { //JEditorPane html = new JEditorPane(type , text); html.setEditable(false); html.addHyperlinkListener(this); JScrollPane pane = new JScrollPane(html); tabPane.addTab(title, null , pane); } public void addDocument(URL url) { html.setContentType("text/html "); html.setEditable(false); html.addHyperlinkListener(this); try { html.setPage(url); } catch(Exception err) { } JScrollPane pane = new JScrollPane(html); tabPane.addTab(url.toString() , null , pane); }

  • JEditorPaneでHTMLの表示完了の通知を得ることはできますか?

    たとえば、Perlだと、 Win32::OLEを使用するときに、 my $url = 'http://www.goo.ne.jp/'; my $ie = Win32::OLE->new ('InternetExplorer.Application'); $ie->{Visible} = 1; $ie->Navigate($url); #通信中はループで待ってやる# while($ie->Busy){ sleep 5; } #以下その後の処理# って感じで、通信中は処理を待ってやることができますが、JAVAのJEditorPaneでHTMLを読み込んだときに、 同じようなことはできるのでしょうか? 読み込んだHTMLをJEditorPaneにきっちり表示が完了するまで次の処理を待つ、つまり表示完了の通知を得るまで待つにはどうすればいいのでしょう?? いろいろ検索してみたのですが、今のところひっかかりません。ヒントや、参考ページでもかまいませんので、おしえていただけませんか?? import java.awt.*; import java.net.*; import javax.swing.*; public class test extends JFrame{ static JEditorPane je; test(){ try{ URL url = new URL("http://www.goo.ne.jp"); je = new JEditorPane(); je.setPage(url); }catch(Exception e){ System.out.println(e); } je.setEditable(false); getContentPane().add(je); } public static void main(String args[]) { test app = new test(); app.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); app.setSize( 400, 400 ); app.setVisible( true ); /* ここで、gooのページがJEditorPaneにきっちり表示されるまで、 次の処理へと進まずに待たせたい。*/ /*どのように書けばいいのでしょう??*/ } }

    • ベストアンサー
    • Java
  • ある文字コードのHTMLを読み込むと文字バケが…

    例えばこのgooの文字コードはEUC-JPなのですが、これを以下のプログラム(抜粋)で読み込むと日本語がおかしくなります。 try {  URL url = new URL(tf.getText());  BufferedReader urlin = new BufferedReader(new InputStreamReader(url.openStream()));  String result = "";  while((result = urlin.readLine()) != null){   System.out.println(result); }  urlin.close(); } Shift-JISだと正常に表示できるのですが… どうかアドバイスをお願いします。

    • ベストアンサー
    • Java
  • コンポーネントの配置

    すみませんコンポーネントの配置でまた困ってます。 一番上にメニューバーを表示させて、 次にツールバーを追加してJTabbedPaneを設置しているんですが、その間にコンボボックスを左にひとつ 右にひとつ設置したいんですがどうやればよいか わかりません(泣 JTabbedPane tabPane = new JTabbedPane(JTabbedPane.TOP , JTabbedPane.SCROLL_TAB_LAYOUT); JEditorPane html = new JEditorPane(); //このコンボボックスをツールバーの下の JEditorPaneとの間に配置したい JComboBox cb1= new JComboBox(choise); JComboBox cb2= new JComboBox(choise); JPanel statusBar = new JPanel(); JLabel statusLabel = new JLabel(); //メニューバーの生成 JMenuBar mb = new JMenuBar(); //メニューの作成 JMenu mn1 = new JMenu("ファイル(F)"); JMenu mn2 = new JMenu("編集(E)"); JMenu mn3 = new JMenu("表示(V)"); //メニューバーにメニューを追加する mb.add(mn1); mb.add(mn2); mb.add(mn3); //フレームにメニューバーを設定 setJMenuBar(mb); //ツールバーの作成 JToolBar tb = new JToolBar(); //ツールバーを固定する tb.setFloatable(false); //ツールバーの追加 getContentPane().add(tb, BorderLayout.NORTH); getContentPane().add(html,rLayout.CENTER); statusBar.add(statusLabel); getContentPane().addstatusBar,BorderLayout.SOUTH); ---------------- 追加で質問なんですがメニューバーに追加している たとえばファイル(F)や編集(E)のような(F) や(E)はALTキーを押しながらFやEを押すと 選択できるんですがこの機能ってswingにも実装できるんでしょうか??  どなたかお願いします!!

    • ベストアンサー
    • Java
  • プログラムからの返答の意味がわかりません..

    import java.io.*; public class Teme { public static void main(String [] args) { String [] command = { "C:\\Users\\yuzumodoki\\Desktop\\chunkparser-1.0\\chunkparser-1.0\\parser.exe", "aaaa" }; // 外部プログラムを実行 Runtime runtime = Runtime.getRuntime(); Process process = null; try { process = runtime.exec(command); } catch(Exception exception) { System.err.println(exception.getMessage()); exception.printStackTrace(); System.exit(-1); } // 外部プログラムの標準出力から読み込み BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream())); System.out.println(br); try { String line; while((line = br.readLine()) != null) { System.out.println(line); } } catch(Exception exception) { System.err.println(exception.getMessage()); exception.printStackTrace(); System.exit(-1); } finally { try { br.close(); } catch(Exception exception) { System.err.println(exception.getMessage()); exception.printStackTrace(); System.exit(-1); } } } } 上記のプログラムはparser.exeにアクセスし,そのアプリケーションに文字列を送り,処理をしてその結果を取得するというものです. 本来"aaaa"と送ると"(aaaa aaaa)"と返ってくるプログラムなのですが, java.io.BufferedReader@89ae9e と返ってきます.これはなぜだかわかる方いらっしゃいますか?また,aaaa aaaaと本来の値を返すにはどうすればいいかわかる方いらっしゃいませんか.. もしわかる方いらっしゃたら教えて頂けたらすごくうれしいです(つj)

  • if文の書き方

    プログラム初心者です if文の処理速度が速いのは一般的に考えてどちらでしょうか? 別々にif文で処理する方法 try { if(!isset($_REQUEST['id'])&& !is_string($_REQUEST['id'])){ throw new Exception('error'); } if(!isset($_COOKIE['date'])&& !is_string($_COOKIE['date'])){ throw new Exception('error'); } } catch (Exception $e) { $msg = $e->getMessage(); } 一緒に処理する方法 try { if(!isset($_REQUEST['id']) && !is_string($_REQUEST['id']) && !isset($_COOKIE['date']) && !is_string($_COOKIE['date'])){ throw new Exception('error'); } } catch (Exception $e) { $msg = $e->getMessage(); } よろしくお願いします

    • ベストアンサー
    • PHP
  • データベース接続をどのように関数にすればよいか分かりません

    この処理を何回か使うので関数にすることになりました。 しかし、例外を考えてtry、catchを使うとすると 処理を入れられないで接続終了になってしまいます。 throwsで全部例外をなげるしかないのでしょうか? 分かる方がいましたら、教えてください。 よろしくお願いします。 public void Connect()throws ServletException,IOException {  try{   String drv = "org.gjt.mm.mysql.Driver";   String url = "jdbc:mysql://localhost/keijiban?useUnicode=true&characterEncoding=sjis";   String usr = "";   String pw = "";   Class.forName(drv);   cn = DriverManager.getConnection(url,usr,pw);  //処理を入れる所////////////////////////  }catch(Exception e){   e.printStackTrace();  } finally {   if (cn != null) {    try {     cn.close();    } catch (SQLException e) {     throw new ServletException(e);    }   }  } }

    • ベストアンサー
    • Java
  • ダイアログボックスの出し方其の二

    ダイアログボックスの出し方でお聞きした者です。 今回InputBoxも作ろうと思っているのですが、 これがなかなか思うようにいきません! やりたい事 1.「入力してください」のメッセーが一番上に出る。 2.テキストボックスがでる。 3.OKボタンとCancelボタンがでる。 4.Okを押すとテキストに入力した値が 他のテキストに貼り付けられる。 3までは出来ているみたいなのですが、 4が出来ません! そこで、お願いです。 何方か分かる方おられましたら宜しくお願いいたします。 うぅ~~800文字以上??? ↓↓↓ユーザークラス↓↓↓ myDialog d; d=new myDialog(new Frame()); d.init("入力してください!"); ↑↑↑ユーザークラス↑↑↑ ↓↓↓ソース↓↓↓ public class myDialog extends Dialog{ Label msg; public myDialog(Frame parent){ super(parent,"My Dialog",true); //add("Center",msg=new Label("")); Panel p=new Panel(); //パネル設定 p.setLayout(new GridLayout(1,2)); //パネルの作成 TextField tf; //テキストフィールドの設定 add(tf=new TextField("",20)); //テキストフィールドの作成 tf.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ TextField t=(TextField) e.getSource(); //msg.setText(t.getText()); } }); ーーーここで、ボタンOK Cancelの設定ーーー public void init(String s){ msg.setText(s); setSize(300,150); setVisible(true); } } ↑↑↑ソース↑↑↑

    • ベストアンサー
    • Java
  • javaアプレットについて質問です

    本の通りにソースを記入し、コンパイラしました。 その後実行したら Exception in thread"main"java.lang.NoSuchMethodError:main とコマンドプロンプトに表示されました。 何が原因ですか? 因みに下記がソースコードです import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Sample13 extends JApplet { private JLabel lb; private JTextField tf; public void init() { //コンポーネントの作成 lb = new JLabel("お選びください。"); tf = new JTextField(); //コンテナへ追加 add(lb, BorderLayout.NORTH); add(tf, BorderLayout.SOUTH); //リスナの登録 tf.addActionListener(new SampleActionListener()); } //リスナクラス class SampleActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { JTextField tmp = (JTextField) e.getSource(); lb.setText(tmp.getText() + "ですね。"); } } }

専門家に質問してみよう