如何将 JPanel 放在 JFrame 的前面

Posted

技术标签:

【中文标题】如何将 JPanel 放在 JFrame 的前面【英文标题】:How to bring a JPanel to the front of the JFrame 【发布时间】:2019-08-04 17:38:06 【问题描述】:

我有一个项目明天到期,所以我需要帮助。 我正在制作一个时钟,我在很大程度上得到了其他人的帮助,我需要在前面放一个 JButton。我将按钮作为 JPanel 的一部分

public static void main(String[] args) 
        JFrame window = new JFrame("Clock");  
        Color c=new Color(0,0,0);  
        Clock clock = new Clock();
        JPanel p=new JPanel();

        window.setPreferredSize(new Dimension(400,400));
        window.pack();


        window.setBackground(c);  
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   
        Button buton =new Button("Stopwatch");

        p.add(buton);
        window.getContentPane().add(clock);  
        window.setVisible(true);
        clock.start(); 

g.setColor(Color.black);//Background color
        g.setFont(new Font("ComicSans", Font.BOLD, 20));  
        g.setColor(Color.white);//inner circle color
        g.fillOval(xcenter - 150, ycenter - 150, 300, 300);  

        LocalDateTime time =LocalDateTime.now();
        String strTime =time.toString().substring(14,19);
        String strHour =time.toString().substring(11,13);
        int hour =_12hrFormat(strHour);

        g.setColor(Color.black);//time color
        g.drawString(hour+":"+strTime ,141,300);  
        g.setColor(Color.black);//number color
        g.drawString("9", xcenter - 145, ycenter +10);  
        g.drawString("3", xcenter + 135, ycenter +10);  
        g.drawString("12", xcenter-10 , ycenter - 130); 

这是与视觉效果有关的大部分代码

【问题讨论】:

这段代码没有多大意义。其中一半在方法之外。它引用了您未包含的内容。这肯定不是minimal reproducible example。 “将 JPanel 放在 JFrame 的前面”是什么意思? 关闭 main 后的第二个代码半部分中以 g. 开头的行是什么?也许您可以发布屏幕截图并在其上标记您想要的位置。 【参考方案1】:

您的代码肯定没有完成。但是让我们假设您在 paintComponent 中绘制椭圆和其他五线谱。您还必须将 JPanel 添加到 Frame。

JFrame frame = new JFrame("some frame");
JPanel panel = new JPanel();
frame.setContentPane(panel);

然后你可以添加任何你想要的东西。

我希望你的 g 是paintComponent 的一部分。

【讨论】:

谢谢,我只是恐慌,因为这一切都在明天到期

以上是关于如何将 JPanel 放在 JFrame 的前面的主要内容,如果未能解决你的问题,请参考以下文章

如何将两个 JPanel 添加到中心的 JFrame?

如何将 JPanel 添加到 JFrame 十次 [重复]

如何在 JPanel 和 JFrame 的 contentPane 之间添加间距?

如何更改 JFrame 中 JPanel 的大小?

如何在 JFrame/JPanel 中可视化控制台 java

在 JFrame 中将图像绘制到 JPanel