0

JFrame オブジェクトを作成する必要があるのか​​、それとも単に LoanCalculator オブジェクトを作成して JFrame メソッドを呼び出すことができるのか疑問に思っていました。以前に行った GUI コードでは、JFrame オブジェクト (例: JFrame frame = new JFrame()) またはクラス オブジェクトの作成が機能し、プログラムは正常に実行されます。

違いは正確には何ですか?クラスオブジェクトの代わりにJFrameオブジェクトを作成する意味はありますか? (私の質問の唯一の関連部分は、私のメインクラスのコードです)

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);
    }
}
4

1 に答える 1

0

LoanCalculatorがのサブクラスである場合JFrame、に属するすべてのメソッドと変数JFrame(および自分で追加したメソッドと変数LoanCalculator)を継承します。あなたが通常JFrameにできることは何でも、あなたはにできるでしょうLoanCalculator

貼り付けたコードは私には問題ないように見えます(フレームのcontentPaneに追加したり追加しpanel1たりしないことを除いて)。panel2

于 2012-04-08T01:42:42.253 に答える