- ベストアンサー
イベント処理について(文字列をクリックしてアクションをおこすことができますか?)
0121EOの回答
- 0121EO
- ベストアンサー率0% (0/1)
JLabelにマウスリスナーをaddして、マウスクリックイベントの処理をすれば、見た目は文字列をクリックした時に、何かが起こるっていうイベント処理ができると思いますが・・・
関連するQ&A
- シートのクリックイベントは拾えないのか?
ExcelのVBAに関する質問です。 さきほど「セルをクリック、またはダブルクリックしたときに○○したい」という質問に回答したのですが、「セルをクリックした」というイベントを拾う方法がわからず、ダブルクリックのパターンで回答しました。 Worksheetのイベントには BeforeDobuleClick や BeforeRightClick はあるのに Click や onClick というイベントがありません。オートシェイプなどのオブジェクトやフォーム上のオブジェクトには Click イベントがあるのですが、Worksheet になぜかありません。 これまでも同様のケースがあり、ネットで検索したりしたのですが、どれも SelectionChange で代用するものでした。それだと確かにマウスで別セルを選択したときにイベントが発生しますが、 ・キーボード操作でセルを移動してもイベントが発生する ・現在選択しているセルをクリックしてもイベントが発生しない と、厳密はマウスでクリックしたときと同じ動作になりません。 確か以前の質問で「あるセルをクリックするたびに、他のセルの値をカウントアップしたい」というようなものもありました。このような場合には、やはり Click に相当するようなイベントで処理したいです。 どうにかしてWorksheetでクリックイベントを拾うことはできないのでしょうか?
- ベストアンサー
- オフィス系ソフト
- こういう処理を行うには・・・
凄いざっくりとした質問になってしまいますが助けて下さい。 ACCESS2000で作成した社員管理のデータベースがあります。そのデータベースに、それぞれの社員が社内LANに公開されたサイト(こういう説明が正しいのか分かりませんが)から、自分の氏名や社員NOなどを入力して送信ボタンを押すと、サーバーのそのデータが蓄積されて、それを社員管理のデータベースに取り込むというような処理をしたいと考えています。 サーバー関係のJavaで行いたいと思っているんですが、Javaについては超初心者でした。 このような処理を行う場合、Javaのどこら辺を勉強すれば良いんですか?アプレットとか、アプリケーションとか、サブレットとか色々とありますよね。 宜しくお願いします。
- ベストアンサー
- Java
- AWTのアプレットにおいてのイベント処理
javaのAWTでアプレット作成をしているのですがイベント処理部分をどう記述したらいいか解りません。 組み込みたいイベント処理は 1、アプレット起動時に「単語<tab>数字:数字,数字:数字,.......」という形のデータが入っているファイルを読み込んで数字列が一番多い単語(ただし二字熟語~四字熟語)を多い順に9つのボタンのラベルに格納していく。(どの位置のボタンのラベルに格納するかは自由) 2、ボタンを押すと1に書いているファイルを読み込みボタンのラベルに対応した数字列を見つけそれをテキストフィールドに全て出力させる。 ヒントだけでも宜しければ教えてください。お願いします。 /*<HTML> <BODY> <APPLET CODE="Tagcloud.class" WIDTH=400 HEIGHT=350> </APPLET> </BODY> </HTML>*/ //java.appletパッケージをimport宣言 //java.awtパッケージもimport宣言 import java.applet.*; import java.awt.*; import java.awt.event.*; public class Tagcloud extends Applet implements ActionListener{ //AWTのGUIコンポーネントクラスの作成 Button bu1 = new Button(""); Button bu2 = new Button(""); Button bu3 = new Button(""); Button bu4 = new Button(""); Button bu5 = new Button(""); Button bu6 = new Button(""); Button bu7 = new Button(""); Button bu8 = new Button(""); Button bu9 = new Button(""); TextField tf=new TextField(20);//テキストフィールド public void init(){ setBackground(new Color(0,190,221)); //レイアウトを自由に変更 setLayout(null); //アプレット領域にGUIコンポーネント(部品)の追加(載せる) add(bu1); add(bu2); add(bu3); add(bu4); add(bu5); add(bu6); add(bu7); add(bu8); add(bu9); add(tf); //コンポーネントの配置 bu1.setBounds(50,50,80,20); bu2.setBounds(150,50,80,20); bu3.setBounds(250,50,80,20); bu4.setBounds(50,120,80,20); bu5.setBounds(150,120,80,20); bu6.setBounds(250,120,80,20); bu7.setBounds(50,190,80,20); bu8.setBounds(150,190,80,20); bu9.setBounds(250,190,80,20); tf.setBounds(50,250,250,20); //ボタンにActionListenerを登録します。 bu1.addActionListener(this); bu2.addActionListener(this); bu3.addActionListener(this); bu4.addActionListener(this); bu5.addActionListener(this); bu6.addActionListener(this); bu7.addActionListener(this); bu8.addActionListener(this); bu9.addActionListener(this); tf.addActionListener(this); } public void actionPerformed(ActionEvent e){ //ここにイベント処理をする部分を記述 } }
- 締切済み
- Java
- SwingのアプリケーションでのpaintComponentによる処理について
javaを学習している者です。 「マウスがクリックされたところを赤い四角を描画して、その前にクリックされて描画されていた赤い四角は同時に消える」という処理を実装したいのですが、うまくできず、赤い四角が残ってしまいます。 プログラムはpaintComponent(Graphics g)の中で、クリックされた場所で赤い四角を描画する処理だけ実装していて、マウスがクリックされるたび、mouseClicked(MouseEvent e)の中でrepaint()を呼ぶ、という風に書いているのですが、どう変えればうまくいくでしょうか? 前に勉強していたアプレットではこのような感じで出来たと思うのですが・・・。 よろしくお願いします。
- ベストアンサー
- Java
- Java swingによるイベント処理
こんにちは。 イベント処理について質問なのですが・・・。 テキストフィールドから「あ行」など文字を入力 ↓ ボタンをクリック ↓ ラベルに「あいうえお」など文字を表示 上のような処理を行わせたいのですが、どのように処理を分岐させればいいでしょうか?
- 締切済み
- Java
- Javaにおけるイベント処理
JFrame SpritPanel SpritPanel JPanel JButton A JButton B JButton C JList A SpritPanel JList B JTable C という構成で、JButton A をクリックしたらJList AにJButton A用のなんらかのリストを表示し、JButton BをクリックしたらJList BにJButton B用のなんらかのリストを表示し、・・・ と1つGUI部品で発生するイベントで1つまたは複数のGUI部品の更新処理を行いたいのですが、イベントリスナをどこに実装させて、どこに更新処理を書くかで迷います。 例えば、押されるJButton Aにイベントリスナーのメソッドを実装し、そこで処理を書く場合はJList Aをこのメソッド内から見えるようにしなけなくて、それをするためにインスタンスを渡したりするのが面倒に感じています。 様々なGUI部品やパネルで構成され、イベントが起きたら複数のGUI部品が更新が必要となるようなGUIアプリケーションを作る場合、どのようにイベントを処理させるのが王道なのでしょうか。 うまく質問できないので、質問内容に不明な点があれば補足いたします。
- ベストアンサー
- Java
- JButton配列でのイベント処理
JAVA初心者です。 ある、画面にボタン50個を作成しました。(JButtonの配列で作成しました。) そこで質問です。下記のコールバックメソッド(?)btnActionPerformedを50個分作成するのは 煩雑なので1つで処理しようと考えております。 for (int cnt=0; cnt<50; cnt++) { ... JButtonのインスタンス生成処理等 ... btn[cnt-1].addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnActionPerformed(evt); } }); } ... ... ... private void btnActionPerformed(java.awt.event.ActionEvent evt) { ... } btnActionPerformedで受け取ったevtパラメータから押されたボタンのプロパティ等 が判別つくのでしょうか?ActionEventクラスのヘルプを参照しましたが、 いまひとつ良くわかりません。 また、このevtパラメータを使う方法以外で、この様な事が実現できる方法が あれば教えてください。よろしくお願いします。
- ベストアンサー
- Java
- イベント処理
javaでプログラムを作り始めて間がないのですが、イベント処理に関して行き詰ってしまいました。望む動作は、メニュー→ゲーム→じゃんけんと選択すると、初期の状態として「じゃんけん・・・・」という文字とボタンが表示され、どれかボタンを押すと対応して「~ボタンが押されました」と表示させたいのですが、作ったプログラムだと、ボタンを押しても反応しません。後々メニューにもいくつかアイテムを追加したり、最終的にはコンピュータとじゃんけんをするプログラムを書きたいと思っています。ifを使った方法しか思いつかないのですが、どこがおかしいのでしょうか? import javax.swing.*; import java.awt.event.*; import java.awt.BorderLayout; public class question extends JFrame implements ActionListener{ JLabel label1; JPanel p2; public static void main(String[] args){ question test = new question("質問"); test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); test.setVisible(true); } question(String title){ setTitle(title); setBounds( 10, 10, 300, 250); JMenuBar menuBar = new JMenuBar(); JMenu menu = new JMenu("メニュー"); JMenu submenu = new JMenu("ゲーム"); JMenuItem subitem1 = new JMenuItem("じゃんけん"); subitem1.addActionListener(this); subitem1.setActionCommand("Start"); submenu.add(subitem1); menu.add(submenu); menuBar.add(menu); setJMenuBar(menuBar); JPanel p1 = new JPanel(); p2 = new JPanel(); label1 = new JLabel(""); JButton btn1 = new JButton("グー"); btn1.addActionListener(this); btn1.setActionCommand("goo"); JButton btn2 = new JButton("チョキ"); btn2.addActionListener(this); btn2.setActionCommand("cyoki"); JButton btn3 = new JButton("パー"); btn3.addActionListener(this); btn3.setActionCommand("paa"); p1.add(label1); p2.add(btn1); p2.add(btn2); p2.add(btn3); getContentPane().add(p1, BorderLayout.PAGE_START); getContentPane().add(p2, BorderLayout.PAGE_END); p2.setVisible(false); } public void actionPerformed(ActionEvent e){ String cmd = e.getActionCommand(); if (cmd.equals("Start")){ p2.setVisible(true); label1.setText("じゃんけん・・・・"); if (cmd.equals("goo")){ label1.setText("グーが押されました"); }else if (cmd.equals("cyoki")){ label1.setText("チョキが押されました"); }else if (cmd.equals("paa")){ label1.setText("パーが押されました"); } } } }
- ベストアンサー
- Java
- プログラミングの問題が分かりません。
javaのプログラミングで分からない問題があり困っています。 お分かりになる方がいましたら教えてくださると助かります。 ↓問題です マウスイベントを利用した以下のアプレットを作れ. ▽アプレット領域は400×400 ▽マウスがアプレット領域に入ってきたら(MouseEntered),メッセージを表示 「こんにちは,宝探しするよ.好きな場所をクリックしてね」 ▽マウスがクリックされたら(MouseClicked),イベント処理 宝の場所(50×50)を適当に設置 その場所をクリックしたら,あたりでメッセージと宝箱を表示 「あたり! 宝を見つけたよ」&「宝箱の絵」 それ以外の場所をクリックしたら,はずれでメッセージを表示 「はずれ!」 ▽マウスがアプレット領域を出たら(MouseExited),メッセージを表示 「さよなら.また来てね」 よろしくお願いします。
- 締切済み
- Java
- C# 子のコントロールからイベントを送る方法?
毎度お世話になっております。 何の手も加えていないフォームに自分で作った ユーザコントロールを張り付け、そのコントロールからイベントが 発生したら、親フォームを閉じるようにしたいと思っています。 下記にサンプルを記述します。 フォーム側(using文、Designer文は省略) namespace WindowsFormsApplication1 { public partial class Form1 : Form { private string[] stLines = { "こんにちは。", "こんばんは。", "おはよう。", "さようなら。", "おやすみなさい。", }; public Form1() { InitializeComponent(); // 省略 JLabel j = new JLabel(stLines); j.Dock = DockStyle.Fill; this.Controls.Add(j); } } } ユーザコントロール側(Labelを継承) namespace WindowsFormsApplication1 { public class JLabel : Label { private string[] stLines = null; private int lineNo = 0; public JLabel(string[] Lines) { this.Click += new System.EventHandler(this.Jlabel_Click); this.stLines = Lines; this.lineNo = 0; } private void Jlabel_Click(object sender, EventArgs e) { this.lineNo++; if (this.stLines.Length > this.lineNo) { this.Text = this.stLines[this.lineNo]; } else { //ここでイベントを発生させたい //this.lineNo = 0; } } } } 上記のように、渡された文字列をもとに、クリックするごとに次の行を 表示するプログラムですが、行番号が行数を超えた場合にイベントを 発生させて、それを親のフォームが監視し、受け取った際にフォームを 閉じるといった処理をさせたいのです。 親のフォームにクリックイベントを仕掛ければ楽ではありますが、 子供のコントロールからの信号を、親が受け取る…といった流れにしたいのです。 以上、よろしくお願いいたします。
- ベストアンサー
- C・C++・C#
お礼
アドバイスありがとうございます。 JLabelにマウスリスナーをaddできるのですか? へぇ~。まったく思いつきませんでした。 質問してよかったです。 早速やってみます☆