2009-04-11 8 views
0

私のウィンドウに一連の画像(関連テキスト付き)を表示したい。前と次のボタンを使って繰り返していきたいです。これまでのところ、私は画像をJLabelと関連付けることしかできませんでした。 =/NetBeansで画像ギャラリーを設定する

残りの作業を行うにはどうすればよいですか?私は完全なセットのために別の容器を使うべきですか? ArrayListのようなデータ構造にイメージをロードするか、それをフォルダに保存するだけで十分ですか?ボタンを押すと次の画像または前の画像が表示されるように、どのようにイベント処理を追加できますか?

ここには私がこれまで持っていたもののscreenshotがあります。

答えて

1

あなたはまだここにいますか?

各画像のパスを読み込む方法(同じフォルダ内にある場合)を見つけたと仮定します。グローバル変数にディレクトリのパスを格納し、各イメージの名前をVectorに繰り返し格納する必要があります。画像全体ではなく、ファイルの名前を保存するだけです。 また、現在のイメージのインデックスをグローバル変数として保存する必要があります。

あなたのメインウィンドウとしてのJFrameを使用している場合、あなたはそれがクラスのActionListenerをこのように実装することを指定する必要があります。

public class MyClass extends JFrame implements ActionListener 

次に、あなたのボタン(JButtonの)にイベントハンドラをアタッチする必要があります。これはあなたの窓(MyClassの)のコンストラクタの内部に配置されている必要があります

nextButton.addActionListener(this); 
previousButton.addActionListener(this); 

はActionListenerを実装した、あなたのクラスはメソッドのactionPerformedを定義する必要があります。その中で、押されたボタンに従って画像の内容を変更する必要があります。このことができます

public void actionPerformed(ActionEvent e) 
{ 
    Object o = e.getSource(); 
    if(o == nextButton) 
    { 
      currentIndex++; 
      if(currentIndex == vectorImages.size()) 
      { 
       currentIndex = 0; 
      } 
      //Change the image in the JLabel 
      label.setIcon(new ImageIcon(vectorImages.get(currentIndex))); 
    } 
    else 
    { 
      //Iterate backwards 
    } 
} 

希望...

+1

これはずっと前に同様のアプローチを使用して解決しました。お返事いただきありがとうございます。プロジェクトがほぼ同じコードを使用して終了したため、私はそれを受け入れています。 – andandandand

関連する問題