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