2016-03-07 66 views
0

嗨,大家好我正在研究一些Java程序,并且一直困住了几个小时试图弄清楚这一点。希望你能帮助我,我发现GU​​I部分是最困难的。问题如下: 创建一个名为Hobby的类,它具有Hobby对象的属性hobbyName和一个 构造函数,该对象接受一个String名称作为参数。创建一个名为HobbyList的类,该类包含一个Vector或Array of 10个爱好(这两个类将代表系统中的数据(或模型))。向HobbyList类中添加一个 addHobby(向vector添加Hobby)和getHobby(返回Hobbies的向量)方法。创建两个视图类,调用一个视图类ListView(使用JList GUI显示HobbyList中保存的爱好),并调用另一个类ComboView类(使用JComboBox)。在每个GUI中提供一种方法将其添加到HobbyList和另一个按钮来刷新列表显示。保持监听器类独立于GUI类(监听器类\
代表控制器\控制器)。MVC模式GUI程序java(更新GUI)

public class hobby { 

    String hobbyName; 

    public hobby(String hobby) 
    { 
     this.hobbyName = hobby; 

    } 
} 

HobbyList类到目前为止

mport java.util.ArrayList; 



public class HobbyList { 



    public static void main(String[] args) { 
     Hobbies.add("BasketBall"); 
     Hobbies.add("FootBall"); 


} 
    static ArrayList<String> Hobbies = new ArrayList<String>(); 
    public void addHobby() 
    { 
     String hobby = ""; 
     Hobbies.add(hobby); 
    } 

    public ArrayList<String> getHobby() 
    { 
     return Hobbies; 
    } 
} 

的ListView类到目前为止

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

class ListView extends JFrame 
{ 
    public static void main (String [] args) 
    { 
    JFrame frame = new JFrame("List View"); 
     frame.setVisible(true); 
     frame.setSize(300,400); 


     JButton button = new JButton(); 
     button.setText("Add"); 
     JList HobbieValues = new JList(Hobbies); //Not working 

     JPanel ListPanel = new JPanel(); 
     ListPanel.add(button); //Add Button to Panel 
     ListPanel.add(HobbieValues); 
     frame.add(ListPanel); //Add Panel to frame 

} 
} 

回答

0

我想你应该行

JList HobbieValues = new JList(Hobbies); 

改变

JList HobbieValues = new JList(HobbyList.Hobbies); 

虽然我认为JList只接受一个Vector或数组作为参数。在这种情况下,我们可以将以下内容更改为

JList HobbieValues = new JList(HobbyList.Hobbies.toArray()); 
+0

您知道,虽然此方法有效,但通常最好定义一个包装'HobbyList'的ListModel,但这可能会使OP的头部爆炸。 。也是'HobbyList'是一个类不是对象 – MadProgrammer

+0

是的,但爱好列表是静态的。 –

+0

嗯,好吧,OP可以做出来的问题 – MadProgrammer