gpt4 book ai didi

java - 在 TabbedPane 中使用 TextArea

转载 作者:行者123 更新时间:2023-12-01 07:12:36 27 4
gpt4 key购买 nike

我在每个选项卡中添加了一个带有 JPanel 的 JTabbedPane。每个 JPanel 中都有一个 JText 区域。可以在同一模板中动态创建选项卡。

还有一个带有菜单的菜单栏。它有选项来替换出现的字符串(例如,将“<”替换为“<”),当我刚刚使用 JPanel 和 textArea 时,它工作得很好。

现在我已经添加了 tabbedPane,...我不知道如何单独替换 Activity 选项卡的内容,..

我尝试获取选定的组件(getSelectedComponent() 方法和 getComponentAt() 方法)并替换文本,..我没有工作

谁能帮帮我

最佳答案

getSelectedIndex()getSelectedComponent() 应该可以工作。查看How to Use Tabbed Panes教程,它有很好的例子。

编辑:getSelectedComponentAbstractAction 的演示

import javax.swing.AbstractAction;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;

public class TabbedPaneDemo {

static class TextDemoPanel extends JPanel{
private JTextArea textArea;

public TextDemoPanel(String text){
textArea = new JTextArea(5, 20);
textArea.setText(text);
JScrollPane scrollPane = new JScrollPane(textArea);

add(scrollPane);
}

public JTextArea getTextArea() {
return textArea;
}
}

static class SetTextAction extends AbstractAction {
private JTabbedPane tabbedPane;

public SetTextAction(JTabbedPane tabbedPane){
super("Set text");
this.tabbedPane = tabbedPane;
}

@Override
public void actionPerformed(ActionEvent e) {
String value = JOptionPane.showInputDialog(tabbedPane, "Text", "New text");
if (value != null){
TextDemoPanel panel = (TextDemoPanel)tabbedPane.getSelectedComponent();
if (panel != null)
panel.getTextArea().setText(value);
}
}
}

private static void createAndShowGUI() {
JFrame frame = new JFrame("TabbedPaneDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JTabbedPane tabbedPane = new JTabbedPane();

tabbedPane.addTab("Tab 1", new TextDemoPanel("Tab 1 text"));
tabbedPane.addTab("Tab 2", new TextDemoPanel("Tab 2 text"));
tabbedPane.addTab("Tab 3", new TextDemoPanel("Tab 3 text"));

frame.add(tabbedPane, BorderLayout.CENTER);

JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("Menu");
menuBar.add(menu);
JMenuItem item = new JMenuItem(new SetTextAction(tabbedPane));

menu.add(item);

frame.setJMenuBar(menuBar);

frame.pack();
frame.setVisible(true);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}

关于java - 在 TabbedPane 中使用 TextArea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11594263/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com