TomLisankie
TomLisankie

Reputation: 3955

JComboBox not letting me initiate it with an array

import java.awt.event.*;
import javax.swing.*;
public class PlannerMain {
JFrame frame;
JButton makeMap;
JPanel panel;
JLabel outcome;
JComboBox listOfWindTurbines;
int[] windTurbineSpace = new int[10];
JTextField lengthOfRoom, widthOfRoom, widthObjectNeeds, lengthObjectNeeds;
int lengthOfRoomInt, widthOfRoomInt, widthObjectNeedsInt, lengthObjectNeedsInt, largerObjectMeasurement, numberOfItems, numberOfItemsShort;
public static void main(String[] args){
PlannerMain p = new PlannerMain();

}

public PlannerMain(){

    windTurbineSpace[0] = 1;
    frame = new JFrame("Minecraft Land Planner");
    outcome = new JLabel();
    panel = new JPanel();
    makeMap = new JButton("Make Map");
    lengthOfRoom = new JTextField("Length of Room");
    widthOfRoom = new JTextField("Width of Room");
    widthObjectNeeds = new JTextField("Width Object Needs");
    lengthObjectNeeds = new JTextField("Length Object Needs");
    listOfWindTurbines = new JComboBox(windTurbineSpace);
    makeMap.addActionListener(new makeMapListener());
    frame.setSize(580,550);
    frame.add(panel);
    panel.add(makeMap);
    panel.add(lengthOfRoom);
    panel.add(widthOfRoom);
    panel.add(lengthObjectNeeds);
    panel.add(widthObjectNeeds);
    panel.add(listOfWindTurbines);
    panel.add(outcome);
    frame.setVisible(true);


}

class makeMapListener implements ActionListener{

    public void actionPerformed(ActionEvent e) {

        lengthOfRoomInt = Integer.parseInt(lengthOfRoom.getText());
        widthOfRoomInt = Integer.parseInt(widthOfRoom.getText());
        lengthObjectNeedsInt = Integer.parseInt(lengthObjectNeeds.getText());
        widthObjectNeedsInt = Integer.parseInt(widthObjectNeeds.getText());
        if(lengthObjectNeedsInt<=widthObjectNeedsInt){

            largerObjectMeasurement = widthObjectNeedsInt;

        }
        if(widthObjectNeedsInt<=lengthObjectNeedsInt){
            largerObjectMeasurement = lengthObjectNeedsInt;

        }
        numberOfItems = (lengthOfRoomInt/lengthObjectNeedsInt)*(widthOfRoomInt/widthObjectNeedsInt);
        outcome.setText(String.valueOf(numberOfItems));
        lengthOfRoom.setSize(30, 20);
        widthOfRoom.setSize(30, 20);
        widthObjectNeeds.setSize(30, 10);
        lengthObjectNeeds.setSize(100, 20);

        }

    }
}

It's giving me this error on line 28.

Upvotes: 0

Views: 1221

Answers (3)

Brian Roach
Brian Roach

Reputation: 76888

JComboBox takes an array of Object in the constructor. An int is a primitive, so you can't use that.

You need to use the Integer wrapper class:

Integer[] windTurbineSpace = new Integer[10];

Upvotes: 0

lukastymo
lukastymo

Reputation: 26799

The constructor of JComboBox which you want to use needs array of object not primitive types.

change:

int[] windTurbineSpace = new int[10];

to:

Integer[] windTurbineSpace = new Integer[10];

Upvotes: 0

KV Prajapati
KV Prajapati

Reputation: 94635

Use wrapper class,

Integer[] windTurbineSpace = new Integer[10];

Upvotes: 2

Related Questions