gpt4 book ai didi

java - 需要有关 Swing JPanel 的帮助

转载 作者:行者123 更新时间:2023-12-02 11:45:32 25 4
gpt4 key购买 nike

我有一个关于“面板”的非常基本的问题。

我在下面有相同的程序,我想点击 panel 1 上的提交按钮我的程序会打印 hello you hit on a submit button on panel 2 .

我没有看到程序打印 hello you hit on a submit button on panel 2点击 panel 2 上的提交按钮。但是当我触摸框架时,就会神奇地出现 hello you hit on a submit button on panel 2出现在 panel 2

这是怎么回事?我不知道答案,所以想请问您是否知道原因?

附件是我的代码:

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;


public class Main {
private JFrame frame = new JFrame();
private JLayeredPane lpane = new JLayeredPane();
private JPanel panelBlue = new JPanel();
private JPanel panelGreen = new JPanel();
private JButton btn1 = new JButton ("Button1");

public Main()
{
frame.setPreferredSize(new Dimension(600, 400));
frame.setLayout(new BorderLayout());
frame.add(lpane, BorderLayout.CENTER);
lpane.setBounds(0, 0, 600, 400);
panelBlue.setBackground(Color.BLUE);
panelBlue.setBounds(0, 0, 600, 400);
panelBlue.setOpaque(true);
panelBlue.add (btn1);

panelGreen.setBackground(Color.GREEN);
panelGreen.setBounds(200, 100, 100, 100);
panelGreen.setOpaque(true);


btn1.addActionListener(new ActionListener () {

@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
panelGreen.add(new JLabel ("You click button1"));


}});



lpane.add(panelBlue, new Integer(0), 0);
lpane.add(panelGreen, new Integer(1), 0);
frame.pack();
frame.setVisible(true);
}


/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new Main();
}
}

最佳答案

添加标签后调用 panelGreen.revaliate()panelGreen.repaint()。 Swing 布局很懒惰。

@Override
public void actionPerformed(ActionEvent e) {
panelGreen.add(new JLabel ("You click button1"));
panelGreen.revaliate();
panelGreen.repaint();
}});

调用 setOpaque 是无关紧要的,因为组件一开始就是不透明的

关于java - 需要有关 Swing JPanel 的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48234182/

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