コンパイルができない…シンボルを解決できません。

このQ&Aのポイント
  • コンパイルできない理由が分からないので、教えてください。
  • プログラムの一部でシンボルを解決できないエラーが発生しています。
  • 早急に教えていただけると助かります。
回答を見る
  • ベストアンサー

コンパイルができません…

プログラムは以下のようになってます。 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class TEST extends InternalFrame implements ActionListener{    ---- 中略 ---- JPanel p = new JPanel(); p.setLayout(new GridLayout(x,y));    ---- 後略 ---- } コンパイルすると、次のようなエラーが出力されます。 シンボルを解決できません。 クラス GridLayout p.setLayout(new GridLayout(x,y));            ^ コンパイルができない理由が分かる方居られましたら、 ご教授願いたく存じます。 できれば、早急にお願いいたします。

  • Java
  • 回答数3
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.3

 うーん、わかりません。  どこかにタイピングミスはないですか。(とくにimport分やエラーの出ているまわりで)  また、 p.setLayout(new java.awt.GridLayout(x,y));  にしてみても、ダメですか?  どうしても、ダメなら、ソースコード全文を投稿できませんか?

goose_x_viper
質問者

お礼

PecoPlus 様、度々の回答ありがとうございます。 ただただ、感謝あるのみです。 ご指摘の通り、原因は パッケージのインポートミスでした。 質問には、普段通り正しく書いてしまい、 (import java.awt.*; これが抜けていました) 回答者の皆様に多大な迷惑をおかけしたことを ここにお詫びいたします。 本当に、すみませんでした。 大変、お騒がせ致しました。

その他の回答 (2)

  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.2

別におかしいところはないですね…。 >p.setLayout(new GridLayout(x,y)); で使われているx, yが、int型以外の型、ということはありませんか? ※違うだろーなー。

goose_x_viper
質問者

お礼

回答ありがとうございます。 私のミスでした。 原因は パッケージのインポートミスでした。 (PecoPlus 様のご指摘により判明。) 質問には、普段通り正しく書いてしまい、 (import java.awt.*; これが抜けていました) 回答者の皆様に多大な迷惑をおかけしたことを ここにお詫びいたします。 本当に、すみませんでした。 大変、お騒がせ致しました。

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.1

InternalFrameでなくてJFrameではできますか?

goose_x_viper
質問者

お礼

回答ありがとうございます。 変えてみましたが… 相変わらずコンパイルできません。 …困りました。。。

goose_x_viper
質問者

補足

質問に誤りがありましたのでここで、訂正させていただきます。 誤 : InternalFrame (プログラム4行目) 正 : JInternalFrame 多大なる迷惑をお許しください。

関連するQ&A

  • 質問

    javaのswingで、自由に線を引くにはどうすればいいのですか? import javax.swing.*; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.event.*; import java.util.Vector; class hoge{ JPanel p public hoge{ p = new JPanel(); p.setLayout(null); getContentPane().add(p); } public static void main(String args[]){ hoge tr = new hoge(); } } みたいな(細かいところは省略)したプログラムを実行したときに 任意の座標から座標へ線を引くにはどうすれいいのですか? appletviewerのdrawStringのようなメソッドはないのですか?

  • javaでスタート画面を作っていて困っています。

    現在javaでゲームのスタート画面を作っているのですが、パネルが透過されずに困っています。 プログラムソースは import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JLabel; import javax.swing.ImageIcon; import java.awt.Container; import java.awt.BorderLayout; import javax.swing.*; import java.awt.Font; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.*; import java.awt.event.*; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JLabel; import javax.swing.ImageIcon; import java.awt.Container; import java.awt.BorderLayout; import javax.swing.border.LineBorder; import javax.swing.border.EtchedBorder; import java.awt.Color; import java.awt.Container; class Start最新版 extends JFrame{ public static void main(String args[]){ Start最新版 frame = new Start最新版("タイトル"); frame.setVisible(true); } Start最新版(String title){ setTitle(title); setBounds(10, 10, 1024, 768); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel p = new JPanel(); p.setOpaque( false ); ImageIcon icon1 = new ImageIcon("Start.jpg"); JLabel label1 = new JLabel(icon1); JLabel label2 = new JLabel(); p.add(label1); Container contentPane = getContentPane(); contentPane.add(p, BorderLayout.CENTER); JButton button1 = new JButton("ゲームを始める"); button1.setFont(new Font("Mairyo", Font.PLAIN, 30)); JPanel n = new JPanel(); n.setOpaque(false); n.setLayout(new BoxLayout(n, BoxLayout.Y_AXIS)); n.add(Box.createRigidArea(new Dimension(290,30))); n.add(button1); となっています。「ゲームを始める」ボタンだけを残して、周りのパネルを透過して画像を表示させたいのですが、うまくいきません!解決方法をご存知の方どうか教えていただきたいです!よろしくお願いします。

  • javaにおいてコンパイルをすると次のようなエラーが出てきます。

    javaにおいてコンパイルをすると次のようなエラーが出てきます。 力不足で解決することができません。 どうか力を貸してください。 エラーは以下のように出てきます。 よろしくお願いします。 シンボルがみつかりません シンボル: コンストラクタ DrawPanelMouseHandler(DrawPanel) 場所 : DrawPanelMouseHandler の クラス mouseHandler = new DrawPanelMouseHandler(this); mouseHandler = new DrawPanelMouseHandler(this);import java.awt.*; import java.util.ArrayList; import javax.swing.JPanel; import javax.swing.JButton; public class DrawPanel extends JPanel { ArrayList<Shape> shapeList = new ArrayList<Shape>(); DrawPanelMouseHandler mouseHandler; public void paintComponent(Graphics g) { super.paintComponent(g); for(Shape shape: shapeList){ shape.draw(g); } } public DrawPanel(){ mouseHandler = new DrawPanelMouseHandler(this); this.addMouseListener(mouseHandler); this.addMouseMotionListener(mouseHandler); ShapeFactory circleFactory = new CircleFactory(); UIToolButton circleButton = new UIToolButton(circleFactory, this, "Circle"); this.add(circleButton); } public void addShape(Shape s) { shapeList.add(s); repaint(); } } import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class UIToolButton extends JButton implements ActionListener{ DrawPanelMouseHandler mouseHandler; ShapeFactory factory; public UIToolButton(ShapeFactory factory, DrawPanelMouseHandler mouseHandler, String text) { super(text); this.addActionListener(this); this.mouseHandler = mouseHandler; this.factory = factory; } public void actionPerformed (ActionEvent ae) { mouseHandler.setShapeFactory(factory); } }

  • javaのボタン表示等に関する質問

    下記のコードはフォームをNORTH、CENTER、SOUTHEに分割して、それぞれのpaneに ラベルとボタンを表示するものです。 Q1)myFrame.setBounds(350,0, total_x, total_y)をコンストラクターの最初に記述しますと  フォームの表示が正常でなく、コンストラクターの最後では、正常に行なわれます。  この理由等について、コメント頂けますと有り難いです。 Q2)mainに記述してある、下記のコードは無くても、Xでクロースできますが,このコード  の記述は正しいでしょうか GridLayout_new frame = new GridLayout_new(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 以上お手数ですが、コメント頂けますと大変助かります。 //============================================= import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.LineBorder; public class GridLayout_new extends JFrame{ int panelA_x=200, panelA_y=50; int panelB_x=200, panelB_y=200; int panelC_x=200, panelC_y=50; int total_x=panelA_x; int total_y=panelA_y+panelB_y+panelC_y; public static void main(String[] args){ GridLayout_new frame = new GridLayout_new(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } GridLayout_new(){ JFrame myFrame=new JFrame(); myFrame.setTitle("panelA"); // myFrame.setBounds(350,0, total_x, total_y); //正常なformの表示が出来ない myFrame.setVisible(true); LineBorder border = new LineBorder(Color.BLACK, 1, true); //======================== JLabel button1=new JLabel("Label1"); GLabel_Layout(button1, border); JButton button2 = new JButton("button2"); button_Layout(button2, border); //======================== JLabel button3=new JLabel("Label3"); GLabel_Layout(button3, border); JButton button4 = new JButton("button4"); button_Layout(button4, border); //======================== JLabel button5=new JLabel("Label5"); GLabel_Layout(button5, border); JButton button6 = new JButton("button6"); //======================== JLabel button7=new JLabel("Label7"); GLabel_Layout(button7, border); JButton button8 = new JButton("button8"); //======================== JLabel button9=new JLabel("Label9"); GLabel_Layout(button9, border); JButton button10 = new JButton("button10"); button_Layout(button10, border); //======================== JLabel button11=new JLabel("Label11"); GLabel_Layout(button11, border); JButton button12 = new JButton("button12"); button_Layout(button12, border); //================================== JPanel p1 = new JPanel(); GridLayout layout1 = new GridLayout(2,2); //2行、2列の設定 layout1.setHgap(2); layout1.setVgap(10); p1.setLayout(layout1); p1.setBackground(Color.GREEN); p1.add(button1); p1.add(button2); p1.add(button3); p1.add(button4); myFrame.setSize(panelA_x, panelA_y); myFrame.getContentPane().add(p1, BorderLayout.NORTH); //============================== JPanel p2 = new JPanel(); GridLayout layout2 = new GridLayout(2,2); //2行、2列の設定 layout2.setHgap(2); layout2.setVgap(10); p2.setLayout(layout2); p2.setBackground(Color.GREEN); p2.add(button5); p2.add(button6); p2.add(button7); p2.add(button8); myFrame.setSize(panelB_x, panelB_y); myFrame.getContentPane().add(p2, BorderLayout.CENTER); //================================== JPanel p3 = new JPanel(); GridLayout layout3 = new GridLayout(2,2); //2行、2列の設定 layout3.setHgap(2); layout3.setVgap(10); p3.setLayout(layout3); p3.setBackground(Color.GREEN); p3.add(button9); p3.add(button10); p3.add(button11); p3.add(button12); myFrame.setSize(panelC_x, panelC_y); myFrame.getContentPane().add(p3, BorderLayout.SOUTH); myFrame.setBounds(350,0, total_x, total_y); //正常なformの表示 } //constructor void GLabel_Layout(JLabel label, LineBorder border){ label.setPreferredSize(new Dimension(80,20)); label.setBorder(border); label.setBackground(Color.lightGray); label.setOpaque(true); } void button_Layout(JButton button, LineBorder border){ button.setPreferredSize(new Dimension(80,20)); button.setBorder(border); } } //main class....GridLayout_new

    • ベストアンサー
    • Java
  • javaでストップウォッチが上手く作れません

    あるサイトを参考にして作ってみたんですが うまく動いてくれません、多分おかしいところだらけですが どこがダメか教えてもらえるとありがたいです package timeP; import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.EmptyBorder; public class timeC extends JFrame implements Runnable { private JPanel contentPane; private JTextField textField; private Thread th = null; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { timeC frame = new timeC(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public timeC() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 85); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.X_AXIS)); JPanel panel_3 = new JPanel(); contentPane.add(panel_3); panel_3.setLayout(new BorderLayout(0, 0)); textField = new JTextField(); panel_3.add(textField, BorderLayout.CENTER); textField.setColumns(10); JPanel panel_2 = new JPanel(); contentPane.add(panel_2); panel_2.setLayout(new BorderLayout(0, 0)); JButton JButtonstart = new JButton(" 開始 "); JButtonstart.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if ( th == null ) { th = new Thread ( ); th.start(); } } }); panel_2.add(JButtonstart, BorderLayout.CENTER); JPanel panel_1 = new JPanel(); contentPane.add(panel_1); panel_1.setLayout(new BorderLayout(0, 0)); JButton JButtonstop = new JButton(" 停止 "); JButtonstop.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if ( th != null ){ th = null; } } }); panel_1.add(JButtonstop, BorderLayout.CENTER); JPanel panel = new JPanel(); contentPane.add(panel); panel.setLayout(new BorderLayout(0, 0)); JButton btnNewButton_2 = new JButton("New button"); panel.add(btnNewButton_2, BorderLayout.CENTER); } @Override public void run() { //TODO 自動生成されたメソッド・スタブ int i; while ( th != null ){ i = Integer.parseInt( textField.getText() ); try { Thread.sleep(10000); if ( th == null ) break; } catch ( InterruptedException e ){ break; } textField.setText( Integer.toString( i + 1 ) ); } } }

  • コンパイルエラーの対応

    下記のプログラムをコンパイルしたらエラーが発生しました。 プログラム自体は本をそのまま書き写したのですが、何がいけないのでしょう。 教えてください。よろしくお願いします。 Javaのバージョンは1.3.1です import java.applet.*; import java.awt.*; import java.awt.event.*; public class sample3 extends Applet implements ActionListener { Button bt; public void init() { bt = new Button("押します!"); bt.addActionListener(this); add(bt); } public void actionperformed(ActionEvent ae) { bt.setLabel("押しました!"); } } -----------------エラー内容----------------------- sample3.java:4: sample3 は abstract として宣言する必要があります。 actionPerformed(java.awt.event.ActionEvent) を sample3 で定義しません。 public class sample3 extends Applet implements ActionListener ^

    • ベストアンサー
    • Java
  • GridLayoutのPanel上のButton

    GridLayoutのPanel上のButton横サイズを取得したいのですが、 button1.getWidth()==0 と出てしまいます。 フレームやパネルのサイズをボタン数で割れば出るのですが、 そうではなく、ボタンのサイズを取得したいです。 ご存知の方がおられましたら教えて下さい。 //----以下ソースです---- import java.awt.Dimension; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class ButtonSizeOnGridLayout extends JFrame { public ButtonSizeOnGridLayout() { JPanel panel1 = new JPanel(new GridLayout(0, 5)); JButton button1 = new JButton(); button1.setPreferredSize(new Dimension(150, 150)); System.out.println("button1.getWidth()==" + button1.getWidth());//出力:0 panel1.add(button1); this.getContentPane().add(panel1); this.pack(); this.setVisible(true); } public static void main(String a[]) { new ButtonSizeOnGridLayout(); } }

    • ベストアンサー
    • Java
  • javaの課題でコンパイルエラーが出てきて困っています

    学校の授業でjavaの課題が出たのですが、 javakadai.java:41: ここにインタフェースが必要です。 class javakadaiPanel extends JPanel implements ActionListener,ActionEvent{ というエラーが出て困っています。 どなたか解決方法を教えてくれませんか? ソースは以下です。 よろしくお願いします。 import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.Graphics; import java.awt.Color; import javax.swing.JMenuBar; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.JCheckBoxMenuItem; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JRadioButtonMenuItem; import java.awt.Container; public class JavaKadai { public static void main(String[] args) { JavaKadaiFrame frame = new JavaKadaiFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } class JavaKadaiFrame extends JFrame { JavaKadaiFrame() { super(); setSize(300, 300); setLocationRelativeTo(null); setTitle("JavaKadai"); Container c = getContentPane(); c.add(new JavaKadaiPanel(getRootPane())); } } class JavaKadaiPanel extends JPanel implements ActionListener,ActionEvent{ Color color = Color.black; JCheckBoxMenuItem miR = new JCheckBoxMenuItem("R"); JCheckBoxMenuItem miG = new JCheckBoxMenuItem("G"); JCheckBoxMenuItem miB = new JCheckBoxMenuItem("B"); public JavaKadaiPanel(javax.swing.JRootPane root) { setBackground(Color.black); //メニューバーはJFrameのルートペインに追加 JMenuBar bar = new JMenuBar(); JMenu mnBack = new JMenu("BACK"); //メニュー構成 bar.add(mnBack); mnBack.add(miR); mnBack.add(miG); mnBack.add(miB); //ルートペインへメニューを追加 root.setJMenuBar(bar); miR.addActionListener(this); miG.addActionListener(this); miB.addActionListener(this); mnBack.setMnemonic('B'); //[Alt]+[B]でアクセス miR.setMnemonic('R'); //[R]でアクセス miG.setMnemonic('G'); //[G]でアクセス miB.setMnemonic('B'); //[B]でアクセス } public void actionPerformed(ActionEvent e){ int R = miR.isSelected() ? 255:0; int G = miG.isSelected() ? 255:0; int B = miB.isSelected() ? 255:0; color = new Color(R,G,B); repaint(); } public void paintComponent(Graphics g) { super.paintComponent(g); // 幅、高さ int height = g.getClipBounds().height; int width = g.getClipBounds().width; // 塗潰し g.setColor(color); g.fillRect(0, 0, width, height); } } まだ途中なので、現時点では不必要なimport文があります。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Radioボタンの割込み処理

    毎度、お世話になります。 Radioボタンの割込み処理について、お教えください。 コード中の『se[0].addChangeListener(this)』にて、Radioボタンをクリックしますと 割込みが発生し、正常に動作します。 Q1)このthisを他のワードに変更できないでしょうか? 理由:他のプログラムで、thisと記述した瞬間に、エラーcheckに引っかかります。 nullの場合は、OKですが、割込みが発生しません。 以上、宜しくお願いします。 ============== import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.FlowLayout; import java.awt.GridLayout; import javax.swing.ButtonGroup; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; class JRadioButtonTestB extends JFrame implements ChangeListener { JRadioButton se[]=new JRadioButton[2]; JLabel lb1, lb2; JRadioButtonTestB() { lb1 = new JLabel(); lb2 = new JLabel(); Container cont = getContentPane(); cont.setLayout(new BorderLayout()); //性別================================ se[0] = new JRadioButton("男性"); se[1] = new JRadioButton("女性"); se[0].addChangeListener(null); //<----問題点 se[1].addChangeListener(null); // JPanel pSex = new JPanel(); pSex.setBackground(Color.cyan); pSex.setLayout(new FlowLayout()); pSex.add(new JLabel("性別")); pSex.add(se[0]); pSex.add(se[1]); ButtonGroup bgsex = new ButtonGroup(); bgsex.add(se[0]); bgsex.add(se[1]); JPanel kaku = new JPanel(); kaku.setBackground(Color.green); kaku.setLayout(new GridLayout(3,2)); kaku.add(new JLabel("確認")); kaku.add(new JLabel(" ")); kaku.add(new JLabel("性別")); kaku.add(lb1); cont.add("North",pSex); cont.add("South",kaku); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("JRadioButtonTestB"); setSize(320, 200); setVisible(true); } public void stateChanged(ChangeEvent e) { if(se[0].isSelected()) lb1.setText("男性"); if(se[1].isSelected()) lb1.setText("女性"); } public static void main(String[] args) { new JRadioButtonTestB(); } } //===

    • ベストアンサー
    • Java
  • HTMLファイルを開きたい

    こんにちは、いつもお世話になっています。 質問があります。 アプレットでボタンを押すと、 HTMLファイル「c:/test_folder/test.html」 を開きたいのですが、 下記コードの(☆) のところに何を書いていいかわかりません。 どなたかご存知でしたら教えていただけないでしょうか? よろしくお願いします。 ============================================================= import javax.swing.*; import java.awt.*; import java.applet.Applet; import java.awt.event.*; import java.net.*; public class situmon extends Applet implements ActionListener { JPanel panel; JButton button; public void init() { panel=new JPanel(); button=new JButton("次へ"); button.addActionListener(this); panel.add(button); this.add(panel); } public void actionPerformed(ActionEvent e) { if(e.getSource()==button) { (☆); } } }

    • ベストアンサー
    • Java