嗨,大家好我正在研究一些Java程序,并且已经被困了几个小时试图解决这个问题。我希望你能帮助我,我发现GUI部分是最困难的。问的是: 创建一个名为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
}
}
答案 0 :(得分:0)
我认为你应该改变这条线
JList HobbieValues = new JList(Hobbies);
到
JList HobbieValues = new JList(HobbyList.Hobbies);
虽然我认为JList只接受Vector或数组作为参数。在这种情况下,我们可以将以下内容更改为
JList HobbieValues = new JList(HobbyList.Hobbies.toArray());