2015-12-12 6 views
0

Я пытаюсь показать пользователю меню вин на выбор. Типы вина (Рислинг, Шардоне и др.) Имеют вариации вина. Я хочу показать пользователю все меню вин, затем они вводят 1-4, чтобы указать, какой тип они хотят, который показывает им все строки для этого столбца. Затем они могут ввести 1-3, чтобы выбрать, какую строку они хотят. Моя проблема в том, что я не знаю, как сделать метод для этого. Кроме того, пользователь может сделать это до 16 раз, или пока они не захотят выйти. Это всего лишь один метод. Любой, кто может помочь, будет очень благодарен.Использование многомерных массивов в Java

http://puu.sh/lT5r5/4b7fd3262d.png (Prompt)

import javax.swing.JOptionPane; 

public class WineCalc{ 

public static void main(String[] args){ 

    String[][]wineTypes = { 
         {"Riesling", "Chardonnay", "Sauvignon Blanc", "Merlot"}, 
         {"Dry- $4.50", "Apple- $6.00", "Lime-$4.50", "Plum- $5.00"}, 
         {"Off Dry-$4.00", "Lemon-$5.50", "Lemongrass- $6.50", "Black Cherry- $7.50"}, 
         {"Sweet- $5.00", "Vanilla- $6.00", "Coconut- $7.00", "Chocolate- $6.00"}, 
         }; 
    double[][]prices = { 
        {4.50, 6.00, 4.50, 5.00}, 
        {4.00, 5.50, 6.50, 7.50}, 
        {5.00, 6.00, 7.00, 6.00}, 
        }; 

    int[][]counter = { 
        {0,0,0,0}, 
        {0,0,0,0}, 
        {0,0,0,0}, 
        }; 


} 

public static String getWineType(String wineTypes[][]){ 
    for(i=0; i<wineTypes[0].length;i++){ 
    for(int j=0; j<wineTypes.length; j++){ 
     JOptionPane.showMessageDialog(null, wineTypes[i][j]); 
    } 
    } 




return wineTypes[][]; 
} 
} 
+1

Это выглядит как вы не хотите «многомерные массивы» здесь, но реальные объекты POJO. – fge

+0

Я не могу использовать объекты, я должен использовать простые для циклов и прочее. это для класса :(im just stuck..I хочу, чтобы пользователь вводил числа, соответствующие строкам и столбцам. Кажется, это так просто, но я не могу понять это – Hello

+1

Что значит, вы должны? Это школьное задание и ваш преподавательский персонал заставил эту необоснованную просьбу о вас? Конечно, вы понимаете, что в реальной жизни это никогда не произойдет, верно? – fge

ответ

1

Вы объявляете ваши 2d массивы хорошо, но ваш метод нуждается в переделки. Вы даете ему тип возвращаемого типа, но ничего не возвращаете, измените его на void.

Чтобы получить вход:

// somewhere before the getWineType() call 
int i = Integer.parseInt(JOptionPane.showInputDialogue("Enter First number: ") 
// if you want to list all the wines in the sub query at this point put a method here to do so 
int j = Integer.parseInt(JOptionPane.showInputDialogue("Enter Second number: ") 
JOptionPane.showMessageDialog(wineTypes[i][j]); //this will show the selected wine 

Что касается вашего метода список вин.

public static void listWineTypes(wineTypes[][]) { //void return 
     listarray[][] = wineTypes[][]; 
     for(i=0; i<listarray.length;i++){ //change this 
     for(int j=0; j<listarray[i].length; j++){ //and this 
      JOptionPane.showMessageDialog(wineTypes[i][j]); //this will print out each wine in the list. 
} 

Вы также должны вызвать метод где-то:

 getWineType(wineType[][]); 
+0

интересный. как я могу попросить пользователя ввести колонку и строку, которую они хотят? в другом методе? – Hello

+0

Вы можете использовать JOptionPane.showInputDialog() плохо отредактировать ответ ... – Anton

+0

Мне нужно использовать JOptionP ane only, и для петель в основном. Только один класс. Они преднамеренно сделали это тяжело для меня :( – Hello

Смежные вопросы