Java Swing addTab 计数
Java Swing addTab with count
我有一些秋千组件:
//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);
当用户 "Opens" 一个文本文件时,它应该在 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);
我得到的错误:
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 1, Tab count: 1
我被告知要保留对原始选项卡式窗格的引用,以便 ActionListener 中的代码可以引用此变量并添加更多 - 但我不明白这一点(我是新手)。任何帮助将不胜感激。
list.setSelectedIndex(count);
Java 索引是从零开始的。代码应该是:
list.setSelectedIndex(count - 1);
I've been told to keep a reference to the original tabbed pane
而你还没有这样做。
JTabbedPane tabbedPane = new JTabbedPane();
那是局部变量,不是实例变量。该代码与我在上一个问题中提供给您的 link 中的代码有何相似之处???
局部变量和实例变量是基本的Java。如果您不理解这些,您就不应该使用 GUI。先阅读教科书了解 Java 基础知识。阅读我给你的教程link。下载工作代码并花时间理解它!!!
我有一些秋千组件:
//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);
当用户 "Opens" 一个文本文件时,它应该在 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);
我得到的错误:
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 1, Tab count: 1
我被告知要保留对原始选项卡式窗格的引用,以便 ActionListener 中的代码可以引用此变量并添加更多 - 但我不明白这一点(我是新手)。任何帮助将不胜感激。
list.setSelectedIndex(count);
Java 索引是从零开始的。代码应该是:
list.setSelectedIndex(count - 1);
I've been told to keep a reference to the original tabbed pane
而你还没有这样做。
JTabbedPane tabbedPane = new JTabbedPane();
那是局部变量,不是实例变量。该代码与我在上一个问题中提供给您的 link 中的代码有何相似之处???
局部变量和实例变量是基本的Java。如果您不理解这些,您就不应该使用 GUI。先阅读教科书了解 Java 基础知识。阅读我给你的教程link。下载工作代码并花时间理解它!!!