2016-11-24 11 views
-1

を示し、これはこれは、メモリのゲームプログラムの一部であるは、GUIフレームを構築するが、それは空白の

import java.awt.BorderLayout; 
import java.awt.Font; 
import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.*; 


public class Frame extends JFrame 
{ 
    private static final int FRAME_WIDTH = 1000; 
    private static final int FRAME_HEIGHT = 800; 
    private final int FIELD_WIDTH = 10; 
    private ImageIcon image1; 
    private JLabel label1; 
    private ImageIcon image2; 
    private JLabel label2; 
    private ImageIcon image3; 
    private JLabel label3; 
    private JComboBox combo; 
    private JTextField textField1; 
    private JTextField textField2; 
    private JButton button; 
    private JPanel ChoosePanel; 
    private JPanel ImagePanel; 
    public Frame() 
    { 

     createImagePanel(); 
     createChoosePanel(); 
     add(ChoosePanel,BorderLayout.CENTER); 
     add(ImagePanel, BorderLayout.SOUTH); 
     setSize(FRAME_WIDTH,FRAME_HEIGHT); 
    } 
     //create a image panel for images 
     public void createImagePanel() 
     { 
     ImagePanel = new JPanel(); 
     ImagePanel.setLayout(new GridLayout(2,3)); 
     image1 = new ImageIcon(getClass().getResource("cover.jpg")); 
     label1 = new JLabel(image1); 
     ImagePanel.add(label1); 
     ImagePanel.add(label1); 
     ImagePanel.add(label1); 
     ImagePanel.add(label1); 
     ImagePanel.add(label1); 
     ImagePanel.add(label1); 
     } 
     //create a panel for combobox and textfield 
     public void createChoosePanel() 
     { 
     ChoosePanel = new JPanel(); 
     ChoosePanel.setLayout(new GridLayout(1,4)); 
     combo =new JComboBox(); 
     combo.addItem("reveal"); 
     combo.addItem("cover"); 
     combo.addItem("done"); 
     ChoosePanel.add(combo); 

     textField1 = new JTextField(FIELD_WIDTH); 
     textField2 = new JTextField(FIELD_WIDTH); 
     ChoosePanel.add(textField1); 
     ChoosePanel.add(textField2); 

     button = new JButton("check"); 
     ChoosePanel.add(button); 

     } 




     //Frame uses BorderLayout by default 


     } 

フレームクラスです。最初に、画像、ボタン、テキストフィールドを持つGUIフレームを構築する必要があります。コンパイルすることはできますが、実行すると空白のフレームしか表示されません。問題はわかりません。

+3

1) 'ImagePanel.add(label1); ImagePanel.add(label1); .. ..各コンポーネントはGUIに一度だけ追加できます。あなたはそれを6回追加することで何を達成すると思いましたか? 2)一般的なJava命名法(命名規則 - 例えば 'EachWordUpperCaseClass'、' firstWordLowerCaseMethod() '、' firstWordLowerCaseAttribute'が 'UPPER_CASE_CONSTANT'以外の場合)を学び、それを一貫して使用してください。 –

+1

1.メソッド 'public class Frame extends JFrame'は' public class MyFrame extends JFrame'でなければなりません。標準APIで定義されている 'java.awt.Frame'がコンテナ – mKorbel

答えて

0

enter image description here

私はあなたのアプリケーションを実行すると、画像が示すようにGUIを得ることができます。

が、私はあなたの画像ファイルが正しいパスであることを確認してください

image1 = new ImageIcon(getClass().getResource("cover.jpg")); 

上の1つのにNullPointer例外を持っています。

+0

として存在しますが、本当に奇妙なGUIは得られません。私はsciTEを使ってプログラムする – Lenox

関連する問題