gpt4 book ai didi

java - 为什么 GUI 不工作?

转载 作者:行者123 更新时间:2023-12-02 06:49:33 25 4
gpt4 key购买 nike

我添加了一个可折叠树,它是一个可折叠复选框,但它没有出现在第三个面板上。您能看出问题所在并提出修复建议吗?我不知道问题是什么,我认为我的做法应该可以工作,但是当我启动 GUI 时,我在第三个面板上看不到任何内容

import javax.swing.*;
import java.awt.CardLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.event.TreeModelEvent;
import javax.swing.event.TreeModelListener;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;

public class MyWizard {

private JFrame frame = new JFrame("My Wizard");
private JPanel panelContainer = new JPanel();
private JPanel panelFirst = new JPanel();
private JPanel panelSecond = new JPanel();
private JPanel panelThird = new JPanel();
private JButton btNext = new JButton("Next");
private JButton btNextTwo = new JButton("Next");
private JButton btNextThree = new JButton("Next");
private JRadioButton btLdap, btKerbegos, btSpnego, btSaml2;
private JCheckBox btSan, btNFS, btYUMserver;
private CardLayout c1 = new CardLayout();
DefaultMutableTreeNode root = new DefaultMutableTreeNode("Root");

public MyWizard() {
panelContainer.setLayout(c1);
panelFirst.add(btNext);
panelSecond.add(btNextTwo);
panelThird.add(btNextThree);
panelFirst.setLayout(null);
panelSecond.setLayout(null);
panelThird.setLayout(null);
panelContainer.add(panelFirst, "1");
panelContainer.add(panelSecond, "2");
panelContainer.add(panelThird, "3");
c1.show(panelContainer, "1");
final DefaultMutableTreeNode accessibility =
add(root, "Accessibility", true);
add(accessibility, "Move system caret with focus/selection changes", false);
add(accessibility, "Always expand alt text for images", true);
root.add(accessibility);
final DefaultMutableTreeNode browsing =
new DefaultMutableTreeNode("Browsing");
add(browsing, "Notify when downloads complete", true);
add(browsing, "Disable script debugging", true);
add(browsing, "Use AutoComplete", true);
add(browsing, "Browse in a new process", false);
root.add(browsing);
final DefaultTreeModel treeModel = new DefaultTreeModel(root);
final JTree tree = new JTree(treeModel);
final CheckBoxNodeRenderer renderer = new CheckBoxNodeRenderer();
tree.setCellRenderer(renderer);
final CheckBoxNodeEditor editor = new CheckBoxNodeEditor(tree);
tree.setCellEditor(editor);
tree.setEditable(true);
JScrollPane scrollPane = new JScrollPane(tree);
panelThird.add(scrollPane);
btNext.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
c1.show(panelContainer, "2");

}
});
btNextTwo.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
c1.show(panelContainer, "3");

}
});
RadioButtons();
Button();
Buttons();
CheckList();
groupButton();
ButtonsTwo();
frame.add(panelContainer);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.pack();
frame.setSize(600, 360);
frame.setVisible(true);
}

public void RadioButtons() {
btLdap = new JRadioButton("Ldap");
btLdap.setBounds(60, 85, 100, 20);
panelFirst.add(btLdap);
btKerbegos = new JRadioButton("Kerbegos");
btKerbegos.setBounds(60, 115, 100, 20);
panelFirst.add(btKerbegos);
btSpnego = new JRadioButton("Spnego");
btSpnego.setBounds(60, 145, 100, 20);
panelFirst.add(btSpnego);
btSaml2 = new JRadioButton("Saml2");
btSaml2.setBounds(60, 175, 100, 20);
panelFirst.add(btSaml2);
}

public void Button() {
btNext.setBounds(400, 260, 100, 20);
}

public void CheckList() {
btSan = new JCheckBox("San");
btSan.setBounds(60, 85, 100, 20);
panelSecond.add(btSan);
btNFS = new JCheckBox("NFS");
btNFS.setBounds(60, 115, 100, 20);
panelSecond.add(btNFS);
btYUMserver = new JCheckBox("Spnego");
btYUMserver.setBounds(60, 145, 100, 20);
panelSecond.add(btYUMserver);
}

public void Buttons() {
btNextTwo.setBounds(400, 260, 100, 20);
}

public void ButtonsTwo() {
btNextThree.setBounds(400, 260, 100, 20);
}

private void groupButton() {
ButtonGroup bg1 = new ButtonGroup();
bg1.add(btLdap);
bg1.add(btKerbegos);
bg1.add(btSpnego);
bg1.add(btSaml2);

}

private static DefaultMutableTreeNode add(
final DefaultMutableTreeNode parent, final String text,
final boolean checked) {
final CheckBoxNode data = new CheckBoxNode(text, checked);
final DefaultMutableTreeNode node = new DefaultMutableTreeNode(data);
parent.add(node);
return node;
}

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

最佳答案

//panelFirst.setLayout(null);
//panelSecond.setLayout(null);
//panelThird.setLayout(null);

不要将布局设置为空!!!

Swing 被设计为与布局管理器一起使用。

关于java - 为什么 GUI 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18217940/

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