ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Javaの課題丸投げコミュの【課題】画像表示アプリ

  • mixiチェック
  • このエントリーをはてなブックマークに追加
すいません、親切な方どうか至急教えてくださるとうれしいですorz

____________________________


カレントディレクトリ内の画像ファイル(拡張子が.jpgのファイル)をコンボボックスに表示して、選択された画像が表示されるアプリケーションを作成しよう。

image1.jpg image2.jpg image3.jpg image4.jpg (右クリック→「対象をファイルに保存」で、クラスファイルと同じディレクトリに保存)


※以下が穴埋め問題です。
→ 【          】となっているところを回答で全10問です。
お願いします・・・orz



import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class imageTest2{ //クラス名をimageTest2にしました
public static void main(String args[]){

//(1)JFrameクラスのインスタンスを作成して
//アプリの土台となるフレームを作成する。
final JFrame fr;
fr = new JFrame("画像表示アプリ");

//(2)ContentPaneを取得してBorderLayoutの
//インスタンスをセット
fr.getContentPane().setLayout(new BorderLayout());

//(3)JComboBoxのインスタンスを1つ作成。
final JComboBox jcb;
jcb = new JComboBox();

//※カレントディレクトリ内のファイルリストを取得
//※して.jpgのファイルだけコンボに追加します。
//まずカレントディレクトリのファイルを引数に
//Fileクラスのインスタンスを作り、
File testFile;
testFile = new File("imageTest2.class");

//パス情報を取得して、
   →【          】


//そのパス情報を引数にしてFileクラスの
//インスタンスを作り、
   →  【          】

//ディレクトリ名を取得して
   → 【          】

//ディレクトリ名を引数にFileクラスの
//インスタンスを作り、
   → 【          】

//directry・fileの一覧を取得してFileクラスの配列に格納。
   → 【          】

//上記directry・fileの一覧の配列要素数だけループ。
   → 【          】

//各要素を文字列に直して、
   → 【          】

//文字列の末尾が.jpgの場合にコンボに追加。
   → 【          】


//(3)JLabelのインスタンスを1つ作成。
//とりあえずラベルには何も表示しない
final JLabel jlb;
jlb = new JLabel();

//(4’)スクロールペインにラベルをセット
JScrollPane jsp;
jsp = new JScrollPane(jlb);

//コンボでファイルを選択してラベルに画像をセットするイベント
jcb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){

//コンボで選択したファイル名を文字列に
//直して格納
   → 【          】

//上記ファイル名を引数にImageIconクラスの
//インスタンスを作成
          → 【          】

//ラベルに画像をセット
jlb.setIcon(img);
}
});

//(4)contentPaneを取得して部品を追加
fr.getContentPane().add(jcb,BorderLayout.NORTH);
fr.getContentPane().add(jsp,BorderLayout.CENTER);

//(5)フレームを終了した際にコマンドプロンプト
//でコマンド受付状態に戻るため
fr.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});

//(6)フレームのサイズを設定し、可視化。
fr.setSize(500,400);
fr.setVisible(true);

//(7)windowsスタイルの指定
try{
UIManager.setLookAndFeel(
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

SwingUtilities.updateComponentTreeUI(fr);
//frはフレームのインスタンス名です

}catch(Exception e){//エラー処理
}

}
}


コメント(2)

なんだこれは!?(芸術は爆発だの人風)

酷い課題。LookAndFeelの設定何のためだ!??
無駄多いし。
あと、回答するにも超能力が必要だ、、、

クラス名はTest2に変えてます。

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;

import javax.swing.ImageIcon;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

public class Test2 { // クラス名をimageTest2にしました
public static void main(String args[]) {

// (1)JFrameクラスのインスタンスを作成して
// アプリの土台となるフレームを作成する。
final JFrame fr;
fr = new JFrame("画像表示アプリ");

// (2)ContentPaneを取得してBorderLayoutの
// インスタンスをセット
fr.getContentPane().setLayout(new BorderLayout());

// (3)JComboBoxのインスタンスを1つ作成。
final JComboBox jcb;
jcb = new JComboBox();

// ※カレントディレクトリ内のファイルリストを取得
// ※して.jpgのファイルだけコンボに追加します。
// まずカレントディレクトリのファイルを引数に
// Fileクラスのインスタンスを作り、
File testFile;
// クラスファイル
testFile = new File("Test2.class");

// パス情報を取得して、
// →【 】
String path = testFile.getAbsolutePath();

// そのパス情報を引数にしてFileクラスの
// インスタンスを作り、
// → 【 】
File file = new File(path);

// ディレクトリ名を取得して
// → 【 】
String dir = file.getParent();

// ディレクトリ名を引数にFileクラスの
// インスタンスを作り、
// → 【 】
final File dFile = new File(dir);

// directry・fileの一覧を取得してFileクラスの配列に格納。
// → 【 】
File[] files = dFile.listFiles();

// 上記directry・fileの一覧の配列要素数だけループ。
// → 【 】
for (int i = 0; i < files.length; i++) {

// 各要素を文字列に直して、
// → 【 】
String name = files[i].getAbsolutePath();

// 文字列の末尾が.jpgの場合にコンボに追加。
// → 【 】
if (name.toLowerCase().endsWith(".jpg")) {
jcb.addItem(name);
}
}

// (3)JLabelのインスタンスを1つ作成。
// とりあえずラベルには何も表示しない
final JLabel jlb;
jlb = new JLabel();

// (4’)スクロールペインにラベルをセット
JScrollPane jsp;
jsp = new JScrollPane(jlb);

// コンボでファイルを選択してラベルに画像をセットするイベント
jcb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {

// コンボで選択したファイル名を文字列に
// 直して格納
// → 【 】
String selected = jcb.getSelectedItem().toString();

// 上記ファイル名を引数にImageIconクラスの
// インスタンスを作成
// → 【 】
ImageIcon img = new ImageIcon(selected);

// ラベルに画像をセット
jlb.setIcon(img);
}
});

// (4)contentPaneを取得して部品を追加
fr.getContentPane().add(jcb, BorderLayout.NORTH);
fr.getContentPane().add(jsp, BorderLayout.CENTER);

// (5)フレームを終了した際にコマンドプロンプト
// でコマンド受付状態に戻るため
fr.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});

// (6)フレームのサイズを設定し、可視化。
fr.setSize(500, 400);
fr.setVisible(true);

// (7)windowsスタイルの指定
try {
UIManager
.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");

SwingUtilities.updateComponentTreeUI(fr);
// frはフレームのインスタンス名です

} catch (Exception e) {// エラー処理
e.printStackTrace();
}

}
}
>しのぶさん
素早いレスありがとうございましたっ!
本当に助かりましたぁ・・・・;

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Javaの課題丸投げ 更新情報

Javaの課題丸投げのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング