gpt4 book ai didi

java - 如何在 Java 中将多个扩展 JPanel 添加到一个 JFrame 中?

转载 作者:行者123 更新时间:2023-12-04 05:08:58 27 4
gpt4 key购买 nike

我希望来自两个不同类的两个图像并排扩展 JPanel。

我遇到的问题是两个 JPanel 应该在 JFrame 内,但是当我执行 framename.add(panel) 时,它会替换另一个而不是并排添加其中的两个。

我尝试在主类中添加 flowlayout 和其他布局,但没有显示任何图像。

所以我的问题是 ,如果我有两个扩展 Jpanel 的类,我如何将这两个面板添加到 Jframe 中,以便它们并排(彼此相邻)而不替换另一个面板?

任何建议将不胜感激。

编辑 : 如果我将 JFrame 扩展为一个类,该类是否会自动成为 JPanel 本身?我知道扩展是什么意思,但我不确定它在 Jframe 中是如何工作的。

Main.java

import javax.swing.*;
import java.awt.*;
import java.net.URL;

public class Main
{
public static void main(String[] args)
{
JFrame frame = new JFrame();

Panel1 s = new Panel1(); //picture 1
Panel2 n = new Panel2(); //picture 2

frame.add(n);
frame.add(s); //here is the problem, it replaces the previous panel

f.setSize(200,100);
f.setLocation(0,400);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

Panel1.java
import javax.swing.*;
import java.awt.*;
import java.net.URL;

public class image2 extends JPanel
{
ImageIcon anotherIcon;

public image2() //constructor
{
URL imageURL = Panel1.class.getResource("images/puppy.png");
anotherIcon = new ImageIcon(imageURL);
}

public void paint(Graphics g)
{
super.paintComponent(g);
anotherIcon.paintIcon(this, g, 0, 0);
}
}

Panel2.java
import javax.swing.*;
import java.awt.*;
import java.net.URL;

public class Panel2 extends JPanel
{
ImageIcon anotherIcon2;

public Panel2() //constructor
{
URL imageURL = Panel2.class.getResource("images/puppy2.png");
anotherIcon = new ImageIcon(imageURL);
}

public void paint(Graphics g)
{
super.paintComponent(g);
anotherIcon2.paintIcon(this, g, 0, 0);
}
}

最佳答案

  • JFrame已实现 BorderLayout在 API
  • 只有一个 JComponent可以放一个of 5th. areas in BorderLayout

  • I want two images from two different classes that extend JPanel to be side by side.


  • built_in LayoutManagerGridLayout


  • 使用 JLabelIcon如果没有任何 JComponent 添加到 JPanels
  • 关于java - 如何在 Java 中将多个扩展 JPanel 添加到一个 JFrame 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15131947/

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