Java 抛出一个JScrollPane

Java 抛出一个JScrollPane,java,swing,casting,jscrollpane,jtextarea,Java,Swing,Casting,Jscrollpane,Jtextarea,我想知道,如何在JTextArea中投射:JScrollPane 基本上,是一个文本区域,其中有一个:滚动窗格 这里我放了一些代码: JTextArea txtarea = new JTextArea(); JScrollPane scroll = new JScrollPane(txtarea, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

我想知道,如何在
JTextArea
中投射:
JScrollPane

基本上,是一个文本区域,其中有一个:滚动窗格

这里我放了一些代码:

JTextArea txtarea = new JTextArea(); 
JScrollPane scroll = new JScrollPane(txtarea, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);

JTabbedPane tabbed = new JTabbedPane();
tabbed.addTab("Text", null, scroll, "Text");     


savebutton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent A){
txtarea = (JtextArea) tabbed.getSelecetedComponent();
JFileChooser chooser = new JFileChooser();
chooser.showSaveDialog(null);}});
使用最后一段代码,我创建了:文本区域,并添加了:滚动窗格。 这里一切都很好,但我制作了一个JTabbedPane,在这里我添加了文本区域,但是如何放置滚动窗格,我需要在选项卡中放置:滚动窗格

我是怎么说的,这里一切都很好,但在控制台我得到一个例外,它说

JScrollPane cannot be cast to javax.swing.JTextArea...
你能帮我一下,或者给我一个解决这个问题的方法吗?

希望这会有帮助:

txtarea = (JTextArea) ((JScrollPane)tabbed.getSelectedComponent()).getViewport().getView();

请发布所有相关代码,并提供一份声明。您发布的代码似乎没有任何问题。您能指出抛出
ClassCastException
的确切行吗?我能够用您的代码完美地呈现选项卡式窗格中的文本区域,没有任何例外。此外,您必须理解,Java中没有将一个对象强制转换为另一个对象的概念。只能铸造引用。因此,如果您看到这个ClassCastException,这意味着代码中的某个地方有一个非法的强制转换代码。但很明显,这段代码并没有出现在你的问题中。@anacron你介意我将其添加到书签中,以便将来使用你的解释吗?它很简单,但也很好。(并不是说这些矛盾,它们进展得相当顺利)@ItamarGreen,请说吧!非常感谢,我尝试了一些类似的东西,puting,scroll=(JScrollPane)tabbed.getSelectedComponent();但将视口创建为变量,viewport v=新视口(滚动);但没有任何效果,出现了更多的例外。。。不管怎样,谢谢你,你的代码很管用。我不知道你能在队伍里投两次球。不过,谢谢你抽出时间,我真的很感激。问候:)@SthatycSoul<代码>我不知道你可以在一行中重复两次——也许你可以,但是把代码写成单独一行的语句要容易得多。它使调试代码变得更加容易,尤其是在使用调试器时。编写可维护的代码,而不是将所有代码放在一行中,会得到分数。因此,用两条语句编写代码,1)从选项卡获取滚动窗格,2)从视口获取文本区域。另外,不要忘记点击复选标记“接受”答案,这样人们就知道问题已经解决了。