2013-04-17 7 views
0

Я использую BlueJ, и я пытаюсь вызвать метод из другого класса. Чтобы быть более конкретным, я пытаюсь выполнить следующее.Вызов метода из другого класса в java

При нажатии на кнопку скачать музыку, если подходящее значение было введено для номера дисплея:

  • номер дисплея используется, чтобы получить гаджет, литая как MP3, из списка массива.
  • Метод загрузки музыки в классе MP3 вызывается с введенным размером загрузки .

Вот класс gadgetshop, который создает GUI и место, где я хочу вызвать метод downloadMusic. метод для кнопки называется downloadMusic.

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import java.util.ArrayList; 

public class GadgetShop implements ActionListener 
{ 
//Array List 
private ArrayList<Gadget>gadgets; 


public void actionPerformed(ActionEvent event) 
{ 

    if (command.equals("Download Music")) 
    { 
     downloadMusic(); 
    } 
} 

public void addMp3() 
{ 
    MP3 mp3 = new MP3(getWeight(), getPrice(), getModel(), getSize(), getMemory()); 
    gadgets.add(mp3); 
} 

public void displayAll() 
{ 
    for(Gadget gadget : gadgets) 
    { 
     gadget.print(); 
     System.out.println(); 
    } 
} 


public void downloadMusic() 
{ 
} 

public int getDisplay() 
{ 
    int gadgetDisplay = 0; 
    try 
    { 
     gadgetDisplay = Integer.parseInt(displayText.getText()); 

    if (gadgetDisplay<= 0) 
    { 
     JOptionPane.showMessageDialog 
     (frame, "Please enter a positive amount"); 
    } 
    } 
    catch(NumberFormatException exception) 
    { 
     JOptionPane.showMessageDialog 
     (frame, "Please enter a positive amount"); 
    } 
    return gadgetDisplay; 
} 

public String getDownload() 
{ 
    String gadgetDownload; 
    gadgetDownload = downloadText.getText(); 
    return gadgetDownload; 
} 
} 

Это класс MP3-

public class MP3 extends Gadget 
{ 

private int memory; 

public MP3(int theWeight, double thePrice, String theModel, String theSize, int theMemory) 
{ 
    super(theWeight,thePrice, theModel, theSize); 
    memory = theMemory; 
} 

public void downloadMusic(String music, int MusicSize) 
{ 
    if(MusicSize>memory) 
    //if statement saying if size is greater than memory then display the follwing statemnt saying there is not enough memory 
    { 
     System.out.println("Not Enough Memory"); 
    } 
    else 
    // else statement opposite to the above statement saying if music size is less than or equal to the memory display the following statement 
    { 
     memory = memory - MusicSize; 
     System.out.println("Download Successfull. "+ "\nMusic Name: "+ music + "\nMemory Left: " + memory); 
    } 
} 
+6

Пожалуйста, подстройте свой код, чтобы понять вашу проблему. – 2013-04-17 11:40:46

+3

Вы вставили строки кода gazillon, но не задавали вопрос. Какая у вас проблема? – Averroes

+2

Пожалуйста, обратите внимание на эти вопросы, если у вас всего 2 класса, которые содержат всего несколько строк кода. Люди обычно не будут пытаться работать с таким количеством кода. –

ответ

0

«другой класс» (с кнопкой) должен иметь экземпляр класса с методом, который вы хотите позвонить. Вы можете создать экземпляр MP3 в конструкторе GadgetShop и сохранить его как переменную экземпляра. Затем в вашей кнопке прослушивание звонка

mp3Instance.downloadMusic("music", 42); 
+0

экземпляр должен быть ограничен методом downloadMusic в гаджетах. если бы это было что-то вроде MP3 mp3Instance = new MP3(); – user2290426

+0

@ user2290426 В gadgetshop нет downloadMusic-класса. – Kai

+0

жаль, что я имел в виду метод downloadMusic. – user2290426

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