はじめまして、ただいまjavaを勉強しています。
ラジオボタンを用いて画像を切り替え、かつマウスドラッグによる画像のスクロールを実行するプログラムを作成しました。しかし、コンパイルは成功するのですが実行すると画像が表示されません。以下にソースコードを載せます。
/***********
MainPanel2.java
*************/
import java.net.MalformedURLException;
import java.net.URL;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.File;
import java.applet.Applet;
public class MainPanel2 extends JApplet implements ActionListener {
private final JLabel label = new JLabel();
private final JScrollPane scroll = new JScrollPane(label);
private final JViewport vport = scroll.getViewport();
private final URL url1 = null;
private final URL url2 = null;
Container c;
ButtonGroup bg;
JRadioButton but1,but2;
JPanel p ;
public MainPanel2(){
c = this.getContentPane();
c.setLayout(new BorderLayout(10,10));
JPanel p = new JPanel();
p.setLayout(newFlowLayout(FlowLayout.CENTER,10,10));
p.setBackground(Color.white);
c.add("North",p);
c.add("Center",label);
JRadioButton but1 = new JRadioButton("Image1",true);
JRadioButton but2 = new JRadioButton("Image2",false);
ButtonGroup bg = new ButtonGroup();
bg.add(but1);
bg.add(but2);
p.add(but1);
p.add(but2);
but1.addActionListener(this);
but2.addActionListener(this);
HandScrollListener hand = new HandScrollListener();
vport.addMouseListener(hand);
vport.addMouseMotionListener(hand);
add(scroll);
scroll.setPreferredSize(new Dimension(400,300));
}
class HandScrollListener extends MouseInputAdapter {
private final Cursor defCursor = Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR);
private final Cursor hndCursor = Cursor.getPredefinedCursor(Cursor.HAND_CURSOR);
private final Point pp = new Point();
public void mouseDragged(MouseEvent e){
Point cp = e.getPoint();
Point vp = vport.getViewPosition();
vp.translate(pp.xcp.x,pp.ycp.y);
label.scrollRectToVisible(newRectangle
(vp,vport.getSize()));
pp.setLocation(cp);
}
public void mousePressed(MouseEvent e){
label.setCursor(hndCursor);
pp.setLocation(e.getPoint());
}
public void mouseReleased(MouseEvent e){
label.setCursor(defCursor);
label.repaint();
}
}
public void actionPerformed(ActionEvent e) {
URL url1 = null;
URL url2 = null;
try {
url1= newFile("CRW_3857_JFR.jpg").toURI().toURL();
url2 = new File("1img_0561.jpg").toURI().toURL();
}
catch (MalformedURLException ex) {
ex.printStackTrace();
}
if( but1.isSelected()) {
label.setIcon(new ImageIcon(url1));
}
if( but2.isSelected() ) {
label.setIcon(new ImageIcon(url2));
}
}
public static void main(String[] args){
EventQueue.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
public static void createAndShowGUI(){
try{
UIManager.setLookAndFeel
(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e) {
e.printStackTrace();
}
JFrame frame = new JFrame("HandScroll");
frame.setDefaultCloseOperation
(WindowConstants.EXIT_ON_CLOSE);
frame.getContentPane().add(new MainPanel2());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
大変見にくくなっていますがどうかアドバイスお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java java final 1 2022/06/10 22:49
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6.0でのTextboxの高さ変更
-
java junit list同士の比較方法
-
コンパイルエラー <identifier...
-
TextAreaでの文字の色
-
iアプリで複数の画面(パネル)...
-
JPanelの切り替えと再描画
-
javaで文字数制限するには?
-
KeyListenerの使い方について
-
エラーで式の開始が不正ですと...
-
ボタンクリック後パネルを再描...
-
4択クイズでのランダム出題の...
-
連番をオブジェクト名の最後に...
-
Enterキーでボタンを押すにはど...
-
キーボードから入力された全角...
-
タスクトレイのメニュからウィ...
-
ArrayListの使い方について(初...
-
c言語のプログラミングで1から1...
-
IF関数でEmpty値を設定する方法。
-
C言語のポインターに関する警告
-
System.err. printlnとSystem.o...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
java junit list同士の比較方法
-
EXECLの行を削除
-
JPanelの切り替えと再描画
-
TextAreaでの文字の色
-
最後の行に移動するには?
-
コンパイルエラー <identifier...
-
連番をオブジェクト名の最後に...
-
JDialogを閉じた時の処理
-
JPanelの重ね方/OverlayLayout他
-
JTableの列ヘッダ
-
ボタンクリック後パネルを再描...
-
【Swing】JPanel クラス外から...
-
4択クイズでのランダム出題の...
-
次のように書いたのですが、ウ...
-
エラーで式の開始が不正ですと...
-
KeyListenerの使い方について
-
JavaでのSwingを使った簡易電卓...
-
あるコンボボックスを選択する...
-
ArrayListの使い方について(初...
-
VB6.0でのTextboxの高さ変更
おすすめ情報