JComboBox не позволяет мне инициировать его с массивом - PullRequest
0 голосов
/ 13 марта 2011
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);

        }

    }
}

Это дает мне эту ошибку в строке 28.

Ответы [ 3 ]

2 голосов
/ 13 марта 2011

Использовать класс-оболочку,

Integer[] windTurbineSpace = new Integer[10];
0 голосов
/ 13 марта 2011

JComboBox принимает массив Object в конструкторе. int - примитив, поэтому вы не можете его использовать.

Вам необходимо использовать Integer класс оболочки:

Integer[] windTurbineSpace = new Integer[10];
0 голосов
/ 13 марта 2011

Конструктор JComboBox, который вы хотите использовать, нуждается в массиве объектов не примитивных типов.

изменение:

int[] windTurbineSpace = new int[10];

до:

Integer[] windTurbineSpace = new Integer[10];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...