[英]Calling another JFrame/JPanel from another Class
所以我的主類中有以下代碼:
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.JLabel;
@SuppressWarnings("serial")
public class Main extends JPanel{
private final int height = 285;
private final int width = 416;
private static final double appversion = 0.1;
private BufferedImage sdk001;
private static final String appname = "App's Name";
private static final String appstage = "Alpha";
private JFrame frame;
public Main() {
try {
sdk001 = ImageIO.read(getClass().getResourceAsStream("img\\cards\\sdk001.png"));
frame = new JFrame(appname + " (" + appversion + " " + appstage + ")");
frame.add(new Main());
frame.setSize(1020, 680);
frame.setVisible(true);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
}
catch (IOException e) {
Logger LogErr = Logger.getLogger(Main.class.getName());
System.err.println("Caught IOException: " + e.getMessage());
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(sdk001, 0, 0, height, width, null);
}
public static void main(String[] args) {
Main main = new Main();
JFrame frame = main.getFrame();
}
public JFrame getFrame() {
return frame;
}
我試圖在我的“ A”類中調用它,這是代碼:
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
public class A {
public A(Main main){
JFrame frame = main.getFrame();
frame.add(new JLabel("Hi OtherClass did this") );
}
該代碼返回沒有錯誤,但沒有顯示JFrame或任何GUI。 誰能幫我這個; 我對此感到困惑。 謝謝。
您需要使用new
關鍵字初始化JFrame
並使其具有首選大小可見,然后才能查看GUI。
Main main = new Main();
JFrame frame = new JFrame(); //main.getFrame();
frame.add(main); // Add JPanel with components to JFrame
frame.setSize(300,300);
frame.setVisible(true);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.