Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 >  掲示板 >  掲示板(コンパイルは出来たのですが、実行が出来ません。)
閲覧数:175
掲示板(コンパイルは出来たのですが、実行が出来ません。)
名前
匿名
題名 コンパイルは出来たのですが、実行が出来ません。
質問内容

質問を評価する
(0ポイント)
実行をすると
Exception in thread "main" java.lang.NullPointerException
    at java.awt.Container.addImpl(Container.java:1044)
    at java.awt.Container.add(Container.java:363)
    at JComboBoxTest1.<init>(comb.java:31)
    at JComboBoxTest1.main(comb.java:15)
のようなエラーメッセージが出てきます。

全くjavaがわからないので、
どのように改善すれば良いのか、教えてください。
よろしくお願いします。。。

以下がコードです。

import javax.swing.*;
import java.awt.BorderLayout;
import java.util.Vector;
import java.awt.event.*;
import java.awt.Color;
import java.awt.Component;

class JComboBoxTest1 extends JFrame implements ActionListener{

    JComboBox colorCombo;
    JComboBox lineCombo;
    JLabel label;

  public static void main(String[] args){
    JComboBoxTest1 frame = new JComboBoxTest1();

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(10, 10, 300, 200);
    frame.setTitle("write your favorite");
    frame.setVisible(true);
  }

  JComboBoxTest1(){
      String[] colordata = {"red", "blue", "yellow", "black", "pink", 
"green"};
      DefaultComboBoxModel model = new 
DefaultComboBoxModel(colordata);
      colorCombo = new JComboBox(model);
      colorCombo.setMaximumRowCount(3);
      MyCellRenderer renderer = new MyCellRenderer();
      colorCombo.setRenderer(renderer);
      JPanel p = new JPanel();
      p.add(lineCombo);
      getContentPane().add(p, BorderLayout.CENTER);
      colorCombo.addActionListener(this);


     
      String[] linedata = {"5", "10", "15", "20"};
      DefaultComboBoxModel model2 = new 
DefaultComboBoxModel(linedata);
      lineCombo = new JComboBox(model2);
      lineCombo.setMaximumRowCount(3);
     
      MyCellRenderer renderer2 = new MyCellRenderer();
      lineCombo.setRenderer(renderer2);
      JPanel p2 = new JPanel();
      p2.add(colorCombo);
      getContentPane().add(p, BorderLayout.CENTER);
      lineCombo.addActionListener(this);

     

      JPanel p3 = new JPanel();
      p3.add(new JLabel("color:"));
      p3.add(new JLabel(" line:"));

      label = new JLabel();
      JPanel labelPanel = new JPanel();
      labelPanel.add(label);

    
      getContentPane().add(labelPanel, BorderLayout.PAGE_END);
  }

    public void actionPerformed(ActionEvent e){
    String color;
    String line;

    if(colorCombo.getSelectedIndex() == -1){
        color = "(not select)";
    }
    else{
        color = (String)colorCombo.getSelectedItem();
    }

    if(lineCombo.getSelectedIndex() == -1){
        line = "(not select)";
    }
    else{
        line = (String)lineCombo.getSelectedItem();
    }

    label.setText("COLOR:" + color + " , LINE:"+ line);
    }

    class MyCellRenderer extends JLabel implements 
ListCellRenderer{
    MyCellRenderer(){
        setOpaque(true);
    }
    public Component getListCellRendererComponent(
                              JList list,
                              Object value,
                              int index,
                              boolean isSelected,
                              boolean cellHasFocus){

        String data = value.toString();
        setText(data.toUpperCase());

        if(isSelected){
        setForeground(Color.white);
        setBackground(Color.black);
        }
        else{
        setForeground(Color.black);
        setBackground(Color.white);
        }
        return this;
    }
    }
}
質問日時 2014-02-01 20:44:24
名前
匿名
回答内容

回答を評価する
(0ポイント)
>全くjavaがわからないので、
じゃあ基礎から勉強することだね。
回答日時 2014-02-01 20:47:39
回答内容を入力し、「確認」ボタンをクリックしてください。
ログインしていません。ログインしなくても回答はできますが、ログインすると、質問・回答の管理、更新があった場合のメールでの通知を受けることができます。 ユーザIDをお持ちでない方は「ID登録」からユーザIDの登録を行ってください。
氏名 匿名
回答内容
 



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道