Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaSwingAddTab,带count_Java_Swing_Jtabbedpane - Fatal编程技术网

JavaSwingAddTab,带count

JavaSwingAddTab,带count,java,swing,jtabbedpane,Java,Swing,Jtabbedpane,我有一些swing组件: //JList DefaultListModel listModel = new DefaultListModel(); JList list = new JList(listModel); //JTabbedPane JTabbedPane tabbedPane = new JTabbedPane(); frame.add(tabbedPane); //JSplitPane split JSplitP

我有一些swing组件:

    //JList
    DefaultListModel listModel = new DefaultListModel();
    JList list = new JList(listModel);

    //JTabbedPane
    JTabbedPane tabbedPane = new JTabbedPane();
    frame.add(tabbedPane);

    //JSplitPane split
    JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,list , tabbedPane);
    splitPane.setDividerLocation(200);
    frame.add(splitPane);

    //JScrollPane & JTextPane to go inside the tabbed panes
    JTextPane textPane = new JTextPane();
    textPane.setFont(new Font("Calibri",Font.PLAIN,14));
    JScrollPane scrollPane = new JScrollPane(textPane);
当用户“打开”文本文件时,应将其显示在
JList
JTabbedPane
内部的
JTextPane
上。这就是我尝试过的:

int count = tabbedPane.getTabCount(); 

//Add the selected file's name as a string to tabbedPane & listModel.
tabbedPane.addTab(file, scrollPane);
tabbedPane.setSelectedIndex(count); 

listModel.addElement(file);
list.setSelectedIndex(count); 
我得到的错误是:

线程“AWT-EventQueue-0”java.lang.IndexOutOfBoundsException中出现异常:索引:1,选项卡计数:1

我被告知要保留对原始选项卡式窗格的引用,以便ActionListener中的代码可以引用此变量并添加更多内容-但我不明白这一点(我是新来的)。任何帮助都将不胜感激

list.setSelectedIndex(count); 
Java索引是基于零的。代码应为:

list.setSelectedIndex(count - 1); 
我被告知保留对原始选项卡窗格的引用

而你仍然没有这样做

JTabbedPane tabbedPane = new JTabbedPane();
这是一个局部变量,而不是实例变量。这段代码与我在上一个问题中提供给您的链接中的代码看起来如何


局部变量和实例变量是基本的Java。如果您不理解这些,就不应该使用GUI。首先阅读您的课本了解Java基础知识。阅读我给你的教程链接。下载工作代码并花时间去理解它

当你问问题时,贴一张合适的便条。在前面的问题中,您也被要求这样做。感谢您的指导,我不知道什么是实例变量,但由于您的评论,我可以在谷歌中搜索示例,这是我的学习方式,到目前为止,我对进展感到满意:)仍在努力,但我将尝试提出一个更高级的问题并再次提问<代码>我可以在谷歌搜索示例,是的,这是学习的方法。搜索类似“java实例变量”或“java局部变量”的内容。同样,这些是任何Java教科书都应该涵盖的基本概念。但我质疑你为什么要寻找例子。我已经给了你一个链接到一个工作示例。为什么不从这里开始呢?你指的是文本区域示例,对吗?当涉及到标签时,我不知道哪个是哪个panes@bababa,我说的是“文本演示”。在该示例中,您有一个JTextField。在文本字段中输入文本。当您按下Enter键时,将调用ActionListener,并将文本字段中的文本复制到文本区域。它展示了如何创建实例变量(文本字段和文本区域)以及如何编写ActionListener来访问这些变量。因此,从该代码开始学习创建新选项卡的概念。将文本区域替换为JTabbedPane。然后,对于ActionListener,从文本字段中获取文本并创建一个新选项卡。一旦你理解了这个基本概念,你就可以改变/重组你当前的代码来使用你刚刚学到的思想。