-1
我正在使用swing來製作帶有JFrame的Java項目。我正試圖調用非靜態方法build(),它使用它的組件構建JFrame。但是,構建不能是靜態的,因爲我使用getClass(),它需要一個非靜態方法。我不能讓我的主要非靜態,所以我怎麼能稱之爲構建?這裏是我的代碼:如何從靜態方法調用非靜態方法?
public class MainUI {
public static void main(String[] args) {
build(); // Calls build method
}
private void build() {
// Builds JFrame
JFrame frame = new JFrame();
JPanel base = new JPanel();
JLabel background = new JLabel();
frame.setVisible(true);
frame.setTitle("Space Age");
frame.setSize(640,480);
frame.setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
frame.setAutoRequestFocus(false);
frame.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
frame.setLocationRelativeTo(null);
base.setSize(640,480);
base.setAlignmentX(0.0F);
base.setAlignmentY(0.0F);
base.setBackground(new java.awt.Color(255,255,255));
background.setSize(640,480);
background.setAlignmentX(0.0F);
background.setAlignmentY(0.0F);
background.setIcon(new javax.swing.ImageIcon(getClass().getResource("/path/image.png")));
frame.add(base);
frame.add(background);
}
// Variable declarations
private JFrame frame;
private JPanel base;
private JLabel background;
}
通過創建其持有者類的新實例'new MainUI()。build();' –
謝謝!有效。 –