gpt4 book ai didi

java - 为集合中的每个项目创建 Swing GUI 元素 - JAVA

转载 作者:行者123 更新时间:2023-12-01 15:20:14 25 4
gpt4 key购买 nike

如果我有一个对象集合:

public class Party {
LinkedList<Guy> partyList = new LinkedList<Guy>();

public void addGuy(Guy c) {
partyList.add(c);
}
}

还有一个选项卡式 Pane :

public class CharWindow
{
private JFrame frame;

/**
* Launch the application.
*/
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
@Override
public void run()
{
try
{
CharWindow window = new CharWindow();
window.frame.setVisible(true);
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
}

/**
* Create the application.
*/
public CharWindow()
{
initialize();
}

/**
* Initialize the contents of the frame.
*/
private void initialize()
{
frame = new JFrame();
frame.setBounds(100, 100, 727, 549);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JTabbedPane tabbedPane = new JTabbedPane(SwingConstants.TOP);
frame.getContentPane().add(tabbedPane, BorderLayout.CENTER);

JTabbedPane PartyScreen = new JTabbedPane(SwingConstants.TOP);
tabbedPane.addTab("Party Screen", null, PartyScreen, null);

JTabbedPane tabbedPane_2 = new JTabbedPane(SwingConstants.TOP);
tabbedPane.addTab("New tab", null, tabbedPane_2, null);

JTabbedPane tabbedPane_3 = new JTabbedPane(SwingConstants.TOP);
tabbedPane.addTab("New tab", null, tabbedPane_3, null);
}
}

如何将内容添加到 tabbedPane“派对屏幕”,以便它为 LinkedList 中的每个项目显示 JLabel“名称”和垂直 JSeparator?

最佳答案

首先,JTabbedPane 是为每个元素面板创建新选项卡的小部件。它不是选项卡式界面的子界面。 (例如,JTabbedPane 应该包含一个名为 partyScreen 的 JPanel。)

JTabbedPane tabbedPanel = new JTabbedPane(); // holds all tabs

// this is how you add a tab:
JPanel somePanel = new JPanel();
tabbedPanel.addtab("Some Tab", somePanel);

// this is how you'd add your party screen
JPanel partyScreen = new JPanel();
tabbedPanel.addTab("Party Screen", partyScreen);

请记住,Java 命名约定有一个以小写字母开头的变量 - 因此 partyScreen 优于 PartyScreen。

然后遍历 Party 中的每个 Guy 对象并添加适当的组件。我不知道您为什么使用 LinkedList 而不是 List,但我假设您有充分的理由不包含在上面的代码中。

// myParty is an instance of Party; I assume you have some sort of accessor to 
// the partyList
LinkedList<Guy> partyList = myParty.getPartyList();
ListIterator<Guy> it = partyList.listIterator();
while( it.hasNext() ) {
Guy g = it.next();
partyScreen.add(new JLabel( g.getName() ));
partyScreen.add(new JSeparator() );
}

根据您希望它在 partyScreen 面板中的排列方式,您可能需要查看 Layout Manager .

关于java - 为集合中的每个项目创建 Swing GUI 元素 - JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11040709/

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