gpt4 book ai didi

java - setContentPane() 有效,但 getContentPane().add() 不起作用

转载 作者:行者123 更新时间:2023-12-02 06:28:44 26 4
gpt4 key购买 nike

这是我的代码。当我 setContentPane(panel) 时,它可以工作,但是当我 getContentPane().add(panel) 时,它不起作用。

为什么第二种方法不起作用? (它没有向我显示任何内容)

public MyFrame() {

final JFrame frame = new JFrame();
frame.setLayout(new BorderLayout());
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setFont(new Font("Comic Sans MS", Font.BOLD, 12));

JMenuBar mnuBar = new JMenuBar();

JMenu mnu1 = new JMenu("aaa");
mnu1.setMnemonic(KeyEvent.VK_E);

JMenuItem menuItem = new JMenuItem("Insert Places", KeyEvent.VK_T);
menuItem.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {

count = 0;
jt = new ArrayList[4];
for (int i = 0; i < 4; i++)
jt[i] = new ArrayList<JTextField>();

panel = new JPanel();
panel.setLocation(0, 0);
panel.setSize(d.width, d.height);
panel.setLayout(null);


JButton add = new JButton("lllll");
add.setSize(120, 80);
add.setLocation(250, 100);

add.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {

for (int i = 0; i < 4; i++) {
JTextField jt1 = new JTextField(20);
jt1.setSize(150, 30);
jt1.setLocation(450 + i * 200, 80 + count * 50);
jt1.setVisible(true);
jt[i].add(jt1);
panel.add(jt1);
}
count++;

frame.repaint();

}
});
panel.add(add);

JButton confirm = new JButton("ccc");
confirm.setSize(120, 80);
confirm.setLocation(250, 200);

confirm.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {

count = 0;
for (int j = 0; j < jt[0].size(); j++) {
try {

connect.insertPlace(Integer.parseInt(jt[0]
.get(j).getText()), jt[1].get(j).getText(),
Integer.parseInt(jt[2].get(j).getText()),
Integer.parseInt(jt[3].get(j).getText()));
count++;
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e, "ERROR",
0, null);
}
}

JLabel countL = new JLabel("" + count
+ " ??? ??? ?? ");
countL.setSize(100, 100);
countL.setLocation(250, 350 + jt.length * 10);
panel.add(countL);
frame.repaint();

}
});
panel.add(confirm);
frame.getContentPane().add(panel);

}
});
mnu1.add(menuItem);
mnuBar.add(mnu1);
frame.setJMenuBar(mnuBar);
frame.pack();
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setVisible(true);
}

最佳答案

现有内容 Pane 的布局是这样的,您的面板大小不正确并且无法显示。比较现有内容 Pane 、JFrameJPanel 的布局并注意差异。

关于java - setContentPane() 有效,但 getContentPane().add() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20264046/

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