マウスカーソル画像の変更方法は?

このQ&Aのポイント
  • Javaアプレット上でマウスカーソルの変更方法について教えてください。
  • setCursorメソッドではなく、特定の画像を使用してマウスカーソルを変更したいです。
  • 試しにJLabelとImageIconを使用してみましたが、うまく変更できませんでした。メソッド名とサンプルコードを教えてください。
回答を見る
  • ベストアンサー

マウスカーソルを指定の画像を用いて変更するには?

Javaアプレット上に表示されるマウスカーソルの変更方法についての質問です。 setCursorメソッドを用いての予め用意されたカーソルに変更するのではなく、特定の画像を使用してマウスカーソルを変更したいのですがどうすれば良いでしょうか? 自分では以下の様に試してみたのですがマウスカーソルは変更されませんでした。 JLabel label = new JLabel(); ImageIcon icon = new ImageIcon("image/icon.gif"); label.setIcon(icon); できればメソッド名だけでなく簡単なサンプルをつけて頂けると幸いです。 皆様宜しくお願い致しますm(_ _)m

  • whisky
  • お礼率93% (100/107)
  • Java
  • 回答数1
  • ありがとう数2

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

  • ベストアンサー
  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.1

 こんにちは。  CursorクラスとToolkitのcreateCustomCursorメソッド、ComponentのsetCursorメソッドを使うようです。  こんな感じでしょうか。 import java.applet.*; import java.awt.*; import java.net.*; public class CursorTest extends Applet {   Button button;      public void init() {     setLayout(new FlowLayout());          button = new Button("Test");     try {       Image cursorImage = getImage(new URL(getCodeBase(), "f_1.gif"));       Cursor cursor = Toolkit.getDefaultToolkit().createCustomCursor(cursorImage, new Point(), "test");       button.setCursor(cursor);     }     catch (MalformedURLException ex) {       System.out.println("カーソルの読み込み失敗");     }     add(button);   } }

whisky
質問者

お礼

解答頂き有り難う御座います。 Appletとswingの違いを知らずgetCodeBase()がそのままでは使えずまた悩みましたが、掲示して頂いたサンプルを参考に調べるてみると上手くいきました。一応下記に示しておきます。 Cursor cursor = new Cursor(Cursor.DEFAULT_CURSOR); cursor = Toolkit.getDefaultToolkit().createCustomCursor(Toolkit.getDefaultToolkit().getImage("image/icon.gif"), new Point(0,0), "Temp"); setCursor(cursor); お蔭で無事導入する事ができました、有り難う御座いました<(_ _)>

関連するQ&A

  • Jlabel?の上に2つ画像を載せクリックを識別

    JLabelを使えばいいのかよくわからないのですが掲示した 画面のように背景色に薄い赤を指定して2つの矢印画像を 表示します。その矢印の中央に年月を表示したいと思っています。 また、右の矢印をクリックしたら翌月の年月が表示され 左の矢印をクリックしたら前月の年月が表示したいです。 これをswingで完成したいと思っています。 また各コンポーネントは setBounds(int x,int y,int width,int height)で出来ると助かります。 ImageIcon leftIcon = new ImageIcon("./img/left.gif"); ImageIcon rightIcon = new ImageIcon("./img/right.gif"); JLabel label = new JLabel(); label.setText("2010年10月"); label.setIcon(leftIcon); label.setLocation(20,0); label.setSize(170, 20); label.setBackground(Color.white); label.setOpaque(true); ここから先がわかりません どうしても1つの画像と1つのテキストしか表示できません。

    • ベストアンサー
    • Java
  • ボタンクリック後パネルを再描画repaintしたい

    ボタンをクリック後にstaticで保持していた値にプラス1して その値をパネルに再描画したいと思っています。 下記のプログラムだとボタンをクリックすると (<1<2<3<4)となって画像と数字が増えてしまいます 行いたいのは数字の部分だけが再描画されて カウントされて<3と表示されるだけになってもらいたい クラス1つ目 import java.awt.BorderLayout; import java.awt.Cursor; import java.awt.event.MouseEvent; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class Sample extends JFrame{ static int value=1; JPanel work = new JPanel(); public static void main(String[] args) { Sample frame = new Sample(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(100, 200, 200, 100); frame.add(frame.createPanel(), BorderLayout.LINE_END); frame.setVisible(true); } public JPanel createPanel() { ImageIcon icon = new ImageIcon("./img/left.gif"); JLabel label = new JLabel(); Cursor c = new Cursor(Cursor.HAND_CURSOR); label.setCursor(c); label.setIcon(icon); JLabel strLabel = new JLabel(); String str = Integer.toString(value); strLabel.setText(str); work.add(label); work.add(strLabel); label.addMouseListener(new myListener()); return work; } class myListener extends MouseAdapter{ public void mouseClicked(MouseEvent e){ System.out.print(Sample.value++); createPanel().repaint(); setVisible(true); } } } クラス2つ目 import java.awt.event.MouseEvent; import java.awt.event.MouseListener; public class MouseAdapter implements MouseListener{ public void mouseClicked(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mousePressed(MouseEvent e){} public void mouseReleased(MouseEvent e){} }

    • ベストアンサー
    • Java
  • 画像がうまく切り替わらない

    画像がうまく切り替わらない 初心者なため、上記の通りうまく画像を切り替えることができません。 わかる方、申し訳ありませんがご協力お願いいたします。 QUIZフォルダにあるQ1.jpg~Q80.jpgまでの画像を問題文として使った、4択のクイズ形式のプログラムを作成しています。 このプログラムなのですが、1問目と2問目はうまく表示されますが、3問目から画像が切り替わらなくなってしまっています。 swingを使い、以下のような内容でJPanel pにQ80.jpgまで切り替えていこうとしていました。 p.remove(5); ImageIcon icon1 = new ImageIcon("./QUIZ/Q2.jpg"); JLabel label1 = new JLabel(icon1); p.add(label1); new ImageIconを使いすぎなのが原因かとも思っているのですが、どのように直していいものかわからないため、ご指導お願いします。

    • ベストアンサー
    • Java
  • 音ファイルの配置場所を変更したい

    イメージラベルをクリックしたらクリック音が鳴るように プログラムしたいです。下記のプログラムでクリック後 クリック音が鳴るようになったのですが音ファイル(sound.wav) の格納ディレクトリがスマートではないと考えています。 というのもクラスファイルが置いてある場所に音ファイルがあるからです。 ですから、この音ファイルをbeepというフォルダを作ってその中に sound.wavファイルを置きたいと考えています。 添付画像に表示されているようなディレクトリに音ファイルを配置したいのです。 ディレクトリをどうプログラムしてもファイルがありませんというエラーが 出てしまいます。 どうすれば、音ファイルのディレクトリを変更できるでしょうか。 教えて下さい。 package audio; import java.applet.Applet; import java.applet.AudioClip; import java.awt.BorderLayout; import java.awt.Cursor; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.net.URL; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class ClickSound extends JFrame implements MouseListener{ AudioClip pong; public static void main(String[] args) { ClickSound frame = new ClickSound(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(100, 200, 350, 180); frame.setVisible(true); } public ClickSound() { JPanel panel = new JPanel(); panel.setCursor(new Cursor(Cursor.WAIT_CURSOR)); ImageIcon icon = new ImageIcon("./img/left.gif"); JLabel label = new JLabel(); Cursor c = new Cursor(Cursor.HAND_CURSOR); label.setCursor(c); label.setIcon(icon); panel.add(label); java.awt.Toolkit.getDefaultToolkit().beep(); URL soundUrl = getClass().getResource("./sound.wav"); pong = Applet.newAudioClip(soundUrl); label.addMouseListener(this); this.add(panel, BorderLayout.LINE_END); } public void mouseClicked(MouseEvent e) { // 効果音を鳴らす pong.play(); } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } }

    • ベストアンサー
    • Java
  • Jave Swing 画像表示わからない

    java swingでGUIをプログラミングしている者です。 JLabelにImageIconの画像を貼り付けるプログラムです。↓ //画像を表示するプログラム //インポート import javax.swing.*; import java.awt.*; import java.awt.event.*; class gazopro extends JFrame{ JLabel l1; JButton b1; JPanel p; public static void main(String args[]) { //ウィンドウを作成また設定 gazopro frame = new gazopro(); frame.setBounds(300,200,700,400); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } gazopro(){ //コンポーネントを作成 p = new JPanel(); add(p); b1 = new JButton("画像を表示"); p.add(b1); ImageIcon icon = new ImageIcon("image.jpg"); l1 = new JLabel(icon); p.add(l1); } }   わからないところは、ImageIcon icon = new ImageIcon("image.jpg");のところです。 ImageIconの引数は、プログラミングを行っているパソコン(OS は Windows)のマイコンピューター→ Cドライブ→ MyJava→ image.jpgを指定しましたがこれで合ってますか? このプログラムでは、画像が表示されませんでした。 どうすればいいでしょうか? 解説と、ご指導宜しくお願いします。

    • ベストアンサー
    • Java
  • マウスカーソルへの変更

    gifファイルをマウスカーソルとして使用する事は可能なのでしょうか? カーソルのための拡張子があるのは分かっているのですが、どうせならgifみたいなものでやってみたいと思ったのですが。 もし可能であれば、変更ツールみたいなものを教えていただけると助かります。

  • Eclipseから実行すると画像が読み込まれない

    下記のコードをEclipseから実行すると画像が読み込まれないのですが、コマンドプロンプトから実行すると画像が読み込まれます。 コードが同じなのに不思議です…。 原因はどんなことが考えられるのでしょうか? class test extends JFrame{ public static void main(String args[]){ test frame = new test("タイトル"); frame.setVisible(true); } test(String title){ setTitle(title); setBounds(100, 100, 500, 500); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel p = new JPanel(); ImageIcon icon1 = new ImageIcon("img.jpg"); JLabel label1 = new JLabel(icon1); p.add(label1); Container contentPane = getContentPane(); contentPane.add(p, BorderLayout.CENTER); } }

    • ベストアンサー
    • Java
  • ExcelVBA上でのマウスカーソルの大きさ変更

    ExcelVBAに関する質問です。 ExcelVBAに関する質問です。ExcelVBAではデフォルトのマウスカーソルの大きさを変更(例えば2倍に大きくするなど)すること可能なのでしょうか? マウスカーソルが特定のボタンに触れたとき、マウスカーソルが大きくなるようなプログラムを、VBAで作成したいと考えております。 VBAに関して知識のある方、是非お力を貸していただきたいです! ・自分で考えたこと マウスカーソルの大きさを変更する手段は2つあると考えました。 1,マウスカーソルをデフォルトのn倍にすること 2,マウスカーソルをデフォルトから、n倍の大きさのマウスカーソルの画像に置き換えること 前者については、調べた中では難しそうだと感じました。 後者に関しては、javaやVBなどの言語でマウスカーソルを特定の画像に置き換えることが可能であることがわかりました。 ただ、VBAである特定の条件になった時に、マウスカーソルをデフォルトから特定の画像に変更するプログラムのサンプルは見つかりませんでした。 (VB.Netだとhttp://d.hatena.ne.jp/RIREX/20120507/1336397369にあるような例が見つかりました) ・回答していただきたいこと(1が難しいと感じた場合でも、他の1つでも回答していただけると嬉しいです) 1.特定のボタン上にきた時に(注意:左右クリックはしない)、マウスカーソルが大きくなるようなプログラムの具体的なサンプルを教えていただきたいです! やってほしい度合い:★★★★★ 2.VBAにおいてマウスカーソルをデフォルトからn倍にする方法はあるのか?マウスカーソルの座標とは切り離して、実行すればマウスカーソルの大きさが変更されるプログラムの具体的なサンプルを教えていただきたいです! やってほしい度合い:★★ また、仮にVBAで特定の画像を読み込み、デフォルトカーソルをその画像と変更できる場合の画像は、例えばどのような形式のファイルで、どの様にパスを設定すれば良いかも簡単に教えていただけると嬉しいです! ・注意  「マウスカーソルをデフォルトから、他の形に変更したい」のではなく、「マウスカーソルの大きさをExcelVBAのプログラム上で変更したい」です!

  • Javaのプログラミング手伝ってください

    以下のソースコードを応用して、添付画像のような数字のかかれた画像を3つ並べてそれを回して7を揃えるというゲームを作りたいのですが全く進みません。どなたか完成させてくださいm(__)m使用する画像のファイル名は「slot1.jpeg」~「slot7.jpeg」です。 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.Timer; public class OneSlot extends JFrame implements ActionListener { private static final long serialVersionUID = 1L; final int MAX = 7; Timer timer = new Timer(150 , this); JLabel label= new JLabel("スタートで始まるよ",JLabel.CENTER); JButton[] bt = {new JButton("スタート"),new JButton("ストップ")}; JLabel slot= new JLabel(new ImageIcon("Slot1.jpg"),JLabel.CENTER); ImageIcon[] slot_icon = new ImageIcon[MAX]; int iCount = 0; OneSlot(String title) { super(title); timer.setActionCommand("timer"); setBounds(200, 200, 230, 150); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); for(int i = 0;i < slot_icon.length; i++) slot_icon[i] = new ImageIcon("Slot" + (i+1) + ".jpg"); add("North",label); add("Center",slot); JPanel p = new JPanel(); for (int i = 0; i < bt.length;i++) { bt[i].addActionListener(this); p.add(bt[i]); } add("South",p); setVisible(true); } public static void main(String[] args) { new OneSlot("スロットマシン"); } public void actionPerformed(ActionEvent e) { String cmd = e.getActionCommand(); if(cmd.equals("timer")) { if(++iCount == slot_icon.length) iCount = 0; slot.setIcon(slot_icon[iCount]); } if(e.getSource() == bt[0] && !timer.isRunning()) { label.setText("7が当たりだよ"); timer.start(); } else if(e.getSource() == bt[1] && timer.isRunning()) { if(iCount+1 == MAX) label.setText("やった!!おめでとう"); else label.setText("残念でした"); timer.stop(); } } }

  • Swingなしで画像ファイルロード

    AWTを使ってJAVAのアプリケーションを作っています。 単純に画像ファイルを開いてウィンドウに表示するものを作りたいです。 しかし、画像ファイルを開く場合、必ずSwingがいるようなのです。 サンプルを探してもこんなのばかり。 ImageIcon icon=new ImageIcon("hoge.jpg"); Image img=icon.getImage(); このとき、ImageIconはSwingの部品なので、イヤなんです。 Swing未満のものを使って、画像をファイルから読み込んでImageオブジェクトをつくれないものでしょうか。

    • ベストアンサー
    • Java

専門家に質問してみよう