回答内容
回答を評価する
(0ポイント)
|
その中のButtonDemo・TableDemo・TextAreaDemoを試してみました。 ButtonDemoを実行したときファイルが見つかりませんと言われてしまいました。 ImageIcon leftButtonIcon = createImageIcon("images/right.gif"); のように書いてあるので、srcフォルダなどと同じ場所にimagesフォルダを作ってそこに同じファイル名の画像を用意しました。 それでも、Couldn't find file: images/right.gifなどと言われてしまいました。 画像の置き方は間違っていないと思うのですが。 それ以外は、どれも初めからきちんと表示されていました。
そこで、それらのソースを私が書いているソースと比較してみました。 すると、Demoのほうでは私が普段書かないような書き方をされていました。 私はまだ授業ではawtのほうしか習っておらず、swingのほうは自分でやりたいことを調べてみて出会ったときに使ったりしています。 swingにはswing用の書き方が存在して、私がawtの時と同様に書いているためにあのようなことが起こるのでしょうか?
問題が起きているソースは長いため、一部省略で作り直してみました。
package testProgram;
import java.awt.GraphicsEnvironment; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.MenuShortcut; import java.awt.Rectangle;
import javax.swing.JFrame; import javax.swing.JSplitPane; import javax.swing.JTabbedPane; import javax.swing.JTable; import javax.swing.JTextArea; //ウィンドウサイズの各種情報を取得したい //長方形を使いたい //フレーム(Window)を使いたい public class TestProgram extends JFrame{ //Frameクラスを親クラスに持つHTMLEditorクラスの作成 TestProgram(){ //コンストラクタ super(""); //親クラス(Frame)のコンストラクタ実行 setTitle("newpage.html - HTMLEditor"); //ウィンドウタイトルをnewpage.html - HTMLEditorに設定 setSize(600,400); //ウィンドウサイズを600×400に設定 GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment(); //ウィンドウサイズの各種情報を取得 Rectangle windowsize = env.getMaximumWindowBounds(); //ウィンドウを最大化させた時のサイズを取得 setLocation((windowsize.width-600)/2,(windowsize.height-400)/2); //ウィンドウの位置が真ん中になるように設定 setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE ); //×ボタンが押されたらWdadopterオブジェクトを呼び出す }
public static void main(String args[]){ //メイン関数 TestProgram editor = new TestProgram(); //HTMLEditorクラスのインスタンスeditorの生成 MenuBar menuBar = new MenuBar(); //メニューバーの生成 Menu menuFile = new Menu("ファイル"); //ファイルメニューの作成 menuBar.add(menuFile); //メニューバーにファイルメニューを追加 MenuItem menuNew = new MenuItem("新規作成", new MenuShortcut('N')); //ショートカットをCtrl+Nに設定した新規作成メニューアイテムの作成 menuFile.add(menuNew); //新規作成メニューアイテムをファイルメニューに追加 MenuItem menuOpen = new MenuItem("開く", new MenuShortcut('O')); //ショートカットをCtrl+Oに設定した開くメニューアイテムの作成 menuFile.add(menuOpen); //開くメニューアイテムをファイルメニューに追加 MenuItem menuSave = new MenuItem("上書き保存", new MenuShortcut('S')); //ショートカットをCtrl+Sに設定した上書き保存メニューアイテムの作成 menuFile.add(menuSave); //上書き保存メニューアイテムをファイルメニューに追加 MenuItem menuNewSave = new MenuItem("名前を付けて保存", new MenuShortcut('S',true)); //ショートカットをCtrl+Shift+Sに設定した名前を付けて保存メニューアイテムの作成 menuFile.add(menuNewSave); //名前を付けて保存メニューアイテムをファイルメニューに追加 MenuItem menuPrint = new MenuItem("印刷", new MenuShortcut('P')); //ショートカットをCtrl+Pに設定した印刷メニューアイテムの作成 menuFile.add(menuPrint); //印刷メニューアイテムをファイルメニューに追加 menuFile.addSeparator(); //区切り線をファイルメニューに追加 MenuItem menuExit = new MenuItem("終了", new MenuShortcut('E')); //ショートカットをCtrl+Eに設定した終了メニューアイテムの作成 menuFile.add(menuExit); //終了メニューアイテムをファイルメニューに追加 editor.setMenuBar(menuBar); //editorにメニューバーを追加 JTabbedPane tab=new JTabbedPane(); tab.addTab("tab1", new JTable(2,2)); tab.addTab("tab2", new JTable(2,2)); tab.addTab("tab3", new JTable(2,2)); JTextArea text = new JTextArea("This\nis\nTestProgram."); JSplitPane splitPane = new JSplitPane(); splitPane.setDividerSize(3); splitPane.setDividerLocation(400); splitPane.setLeftComponent(text); splitPane.setRightComponent(tab); editor.getContentPane().add(splitPane); editor.setVisible(true); //見えるようにする } }
すると、きちんとすべて表示されていました。 本物では最後の例のように出てこないのですが。 省略している部分問題が隠れているのでしょうか?
|