Swing Jlist未添加所选项目

Swing Jlist未添加所选项目,swing,netbeans,jlist,jtree,Swing,Netbeans,Jlist,Jtree,列出声明 private javax.swing.JTree SourcebooksAvailablePanel; private javax.swing.JList<String> sourcebooksSelectedPanel; 如果我在最后一行将bookLabel更改为balls,它会抛出一个错误“未找到合适的方法” 好吧,这件事我哪里做错了?请不要告诉我参考Oracle的文档,因为我已经去了那里,这就是我如何首先获得大部分代码的原因,除了用add()替换addElemen

列出声明

private javax.swing.JTree SourcebooksAvailablePanel;
private javax.swing.JList<String> sourcebooksSelectedPanel;
如果我在最后一行将bookLabel更改为balls,它会抛出一个错误“未找到合适的方法”

好吧,这件事我哪里做错了?请不要告诉我参考Oracle的文档,因为我已经去了那里,这就是我如何首先获得大部分代码的原因,除了用add()替换addElement()

请不要告诉我参考Oracle的文档

事实上,这正是你需要做的。阅读上的Swing教程中的部分

如果查看
ListDemo
示例中的工作示例代码,您将看到将数据添加到
DefaultListModel
而不是
JList

此外,您将看到将
字符串添加到
DefaultListModel
,而不是
JLabel

因此,是的,教程中的工作示例是开始的地方。从工作实例中学习。您发布的代码与工作示例完全不同

您还可以使用
getSelectedIndex()
,而不是getLastVisibleIndex()来确定数据插入的位置。然后,您需要阅读
DefaultListModel
API,以获取在模型中特定位置插入数据的方法

请不要告诉我参考Oracle的文档

事实上,这正是你需要做的。阅读上的Swing教程中的部分

如果查看
ListDemo
示例中的工作示例代码,您将看到将数据添加到
DefaultListModel
而不是
JList

此外,您将看到将
字符串添加到
DefaultListModel
,而不是
JLabel

因此,是的,教程中的工作示例是开始的地方。从工作实例中学习。您发布的代码与工作示例完全不同


您还可以使用
getSelectedIndex()
,而不是getLastVisibleIndex()来确定数据插入的位置。然后,您需要阅读
DefaultListModel
API,了解在模型中特定位置插入数据的方法。

仅第一段+1我已经阅读了文档,这就是我获得大部分代码的方式。当我尝试将bookName字符串放入add()方法时,它抛出了一个错误“找不到合适的方法”,无论顺序是index、bookName还是bookName、index。
那么您的意思是,JList只是一个容器,我将另一个列表粘贴到其中?很抱歉,如果这是一个愚蠢的问题,但我实际上不是一个程序员,而且在这里我的屁股坐不住。@Carrie请注意堆栈溢出上的语言。
我试图将bookName字符串放入add()方法中,它抛出了一个错误“找不到合适的方法”
-为什么要这样做???示例代码没有这样做,那么您为什么要编写代码呢<所以你说的是…
-这不是我说的。我是说,您有一个工作示例,演示了如何向JList添加文本,因此请从工作示例中学习<代码>坐在我屁股旁边飞行
-这就是我的观点。按照这个例子,你就不会有问题了。不要编造代码。当列表已经由NetBeans GUI builder创建时,为什么我需要创建列表?就第一段而言,我已经阅读了文档,这就是我获得大部分代码的方式。当我尝试将bookName字符串放入add()方法时,它抛出了一个错误“找不到合适的方法”,无论顺序是index、bookName还是bookName、index。
那么您的意思是,JList只是一个容器,我将另一个列表粘贴到其中?很抱歉,如果这是一个愚蠢的问题,但我实际上不是一个程序员,而且在这里我的屁股坐不住。@Carrie请注意堆栈溢出上的语言。
我试图将bookName字符串放入add()方法中,它抛出了一个错误“找不到合适的方法”
-为什么要这样做???示例代码没有这样做,那么您为什么要编写代码呢<所以你说的是…-这不是我说的。我是说,您有一个工作示例,演示了如何向JList添加文本,因此请从工作示例中学习<代码>坐在我屁股旁边飞行-这就是我的观点。按照这个例子,你就不会有问题了。不要编造代码。当列表已经由NetBeans GUI生成器创建时,为什么我需要创建列表?
private void bookAddButtonMouseReleased(java.awt.event.MouseEvent evt) {                                            
String bookName = SourcebooksAvailablePanel.getLastSelectedPathComponent().toString();
// temp variable to grab the contents of selected Jtree node and put into string
JLabel bookLabel = new JLabel(bookName);
//temp invisible label to put into Jlist because Jlist add method doesn't like Strings. Takes bookName as its text

//add code to check if user has already added item at later point

Object balls = SourcebooksAvailablePanel.getLastSelectedPathComponent();
System.out.println(balls); //temp to check if the balls work

int index = sourcebooksSelectedPanel.getLastVisibleIndex(); //get last index of list
if (index == -1) //no items currently populating list
{
    index = 0; //lists and arrays are 0 indexed in Java so this puts the item at the beginning
}
else
{
    index++; //add after the current last item in list
}

Component add = sourcebooksSelectedPanel.add(bookLabel, index);
//supposed to add bookLabel's text to the specified index of the list but nope.
//everything else has been tested and works. Just this command