2012-04-08 16 views
0

Ich frage mich, ob es notwendig ist, ein JFrame-Objekt zu erstellen, oder kann ich einfach ein LoanCalculator-Objekt erstellen, um JFrame-Methoden aufzurufen? In GUI-Code, den ich schon einmal gemacht habe, funktioniert die Erstellung eines JFrame-Objekts (zB JFrame frame = new JFrame()) oder eines Klassenobjekts und das Programm läuft gut.JFrame oder Klassenobjekt?

Was genau ist der Unterschied und ist es von Bedeutung, ein JFrame-Objekt anstelle einer Klasse 1 zu erstellen? (Der einzige relevante Teil meiner Frage ist Code in meiner Hauptklasse)

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class LoanCalculator extends JFrame{ 
     private JButton jbtCompute = new JButton("Compute Payment"); 

    public LoanCalculator(){ 
     JPanel panel1 = new JPanel(); 
      panel1.setLayout(new GridLayout(5, 2)); 
     panel1.add(new JLabel("Annual Interest Rate")); 
     panel1.add(new JTextField(8)); 
     panel1.add(new JLabel("Number of Years")); 
     panel1.add(new JTextField(8)); 
     panel1.add(new JLabel("Loan Amount")); 
     panel1.add(new JTextField(8)); 
     panel1.add(new JLabel("Monthly Payment")); 
     panel1.add(new JTextField(8)); 
     panel1.add(new JLabel("Total Payment")); 
     panel1.add(new JTextField(8)); 

     JPanel panel2 = new JPanel(); 
     panel2.setLayout(new FlowLayout(FlowLayout.RIGHT)); 
     panel2.add(jbtCompute); 
    } 

    public static void main(String[] args){ 
     LoanCalculator frame = new LoanCalculator(); 

     frame.setTitle("Loan Calculator"); 
     frame.pack(); 
     frame.setLocationRelativeTo(null); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setResizable(false); 
     frame.setVisible(true); 
    } 
} 

Antwort

0

wenn LoanCalculator ist eine Unterklasse von JFrame, dann erbt es alle Methoden und Variablen, die zu JFrame gehören (plus was auch immer Methoden und Variablen, die Sie in dem LoanCalculator selbst). Alles, was Sie tun können, um eine normale JFrame, können Sie mit einer LoanCalculator tun.

Der Code, den Sie eingefügt haben, sieht für mich gut aus (außer dass Sie nie panel1 oder panel2 zum Inhalt Ihres Frames hinzufügen).