MVC模式GUI程序java(更新GUI)

时间:2016-03-07 04:19:58

标签: java model-view-controller

嗨,大家好我正在研究一些Java程序,并且已经被困了几个小时试图解决这个问题。我希望你能帮助我,我发现GU​​I部分是最困难的。问的是: 创建一个名为Hobby的类,它具有属性hobbyName和a Hobby对象的构造函数,它接受一个String名称作为参数。创建一个名为HobbyList的类,它包含10个爱好的Vector或Array(这两个类将代表系统中的数据(或模型))。添加一个 addHobby(向矢量添加一个爱好)和getHobby(返回业余爱好)方法到HobbyList类。创建两个视图类,调用一个视图类ListView(使用JList GUI显示HobbyList中保存的爱好)并调用另一个类ComboView类(使用JComboBox)。在每个GUI中提供一种添加到HobbyList的方法和另一个刷新列表显示的按钮。将侦听器类与GUI类分开(侦听器类\ classes将为 代表控制器\控制器)。

    public class hobby {

    String hobbyName;

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

    }
}
到目前为止

HobbyList Class

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

}
}

1 个答案:

答案 0 :(得分:0)

我认为你应该改变这条线

JList HobbieValues = new JList(Hobbies);

JList HobbieValues = new JList(HobbyList.Hobbies);

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

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