2

私はこれをしばらく整理しようとしてきました.ドキュメントをチェックしました(テーブルコードがそこからのものであることに気付いた場合). 間違ったコンテナーを使用していますか、それとも寸法を記入する必要がありますか? もしそうなら、どのように?

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

public class Invest extends JFrame {

    public static void main(String[] args) {
        demolayout frame = new demolayout();
        frame.setTitle("Financial Calculator");

        JPanel toppanel = new JPanel(new GridLayout(3, 3, 2, 2));
        frame.add(toppanel, BorderLayout.NORTH);

        String[] columnNames = {"Entry", "Year", "Year", "Year", "Year"};

        Object[][] data = {{"Period Ending:", "2011", "Snowboarding", new Integer(5), new Boolean(false)},
            {"Values in Millions of $", "12-31", "Rowing", new Integer(3), new Boolean(true)},
            {"Revenue:", "46,542", "Knitting", new Integer(2), new Boolean(false)},
            {"Revenue Other:", "-", "Speed reading", new Integer(20), new Boolean(true)},
            {"Total Revenue:", "46,542", "Speed reading", new Integer(20), new Boolean(true)},
            {"Cost of Revenue:", "18,216", "Speed reading", new Integer(20), new Boolean(true)},
            {"Gross Profit:", "28,326", "Speed reading", new Integer(20), new Boolean(true)},
            {"Selling Gen. Admin Expenses:", "12,111", "Speed reading", new Integer(20), new Boolean(true)},
            {"Research & Development:", "-", "Speed reading", new Integer(20), new Boolean(true)},
            {"Depreciation/Amortization:", "-", "Speed reading", new Integer(20), new Boolean(true)},
            {"Total Operating Expense:", "154", "Speed reading", new Integer(20), new Boolean(true)},
            {"Operating Income:", "35,810", "Speed reading", new Integer(20), new Boolean(true)},
            {"Interest Income (Exp.), Net NonOp:", "10,732", "Speed reading", new Integer(20), new Boolean(true)},
            {"Interest/Invest Inc. Non-Operating:", "White", "Speed reading", new Integer(20), new Boolean(true)},
            {"Interest Inc. Net Non-Operating:", "White", "Speed reading", new Integer(20), new Boolean(true)},
            {"Gain/Loss on Sale of Assets:", "White", "Speed reading", new Integer(20), new Boolean(true)},
            {"Other, Net:", "White", "Speed reading", new Integer(20), new Boolean(true)},
            {"Net Income Before Taxes:", "White", "Speed reading", new Integer(20), new Boolean(true)},
            {"Income Tax - Total:", "White", "Speed reading", new Integer(20), new Boolean(true)},
            {"Minority Interest:", "Brown", "Pool", new Integer(10), new Boolean(false)},
            {"Equity In Affiliates:", "Brown", "Pool", new Integer(10), new Boolean(false)},
            {"Accounting Change:", "Brown", "Pool", new Integer(10), new Boolean(false)},
            {"Discontinued Operations:", "Brown", "Pool", new Integer(10), new Boolean(false)},
            {"Extraordinary Items:", "Brown", "Pool", new Integer(10), new Boolean(false)},
            {"Net Income:", "Brown", "Pool", new Integer(10), new Boolean(false)}};

        JTable table = new JTable(data, columnNames);
        JScrollPane scrollPane = new JScrollPane(table);
        toppanel.add(scrollPane);

        JPanel bottompanel = new JPanel(new FlowLayout());
        bottompanel.setBackground(new Color(150, 150, 150));

        JButton compute = new JButton("Compute Ratios");
        bottompanel.add(compute);
        frame.add(bottompanel, BorderLayout.SOUTH);


        frame.setSize(800, 500);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

ここに画像の説明を入力

4

1 に答える 1

3

フレームに追加すると見栄えがしBorderLayout.CENTERます。

また、既存のプリミティブメソッドまたはファクトリメソッドがある場合は、新しいオブジェクトを作成しないでください。

補遺:ファクトリメソッドとはどういう意味ですか?

良い質問; Integer. valueOf()典型的な静的ファクトリメソッドです。APIに示され、Joshua Blochの項目1で説明されているように、コンストラクターではなく静的ファクトリメソッドを検討してください。このメソッドは、頻繁に要求される値をキャッシュします。

テーブル

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

public class Invest extends JFrame {

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setTitle("Financial Calculator");

        JPanel toppanel = new JPanel(new GridLayout(3, 3, 2, 2));
        frame.add(toppanel, BorderLayout.NORTH);

        String[] columnNames = {"Entry", "Year", "Year", "Year", "Year"};

        Object[][] data = {{"Period Ending:", "2011", "Snowboarding", Integer.valueOf(5), false},
            {"Values in Millions of $", "12-31", "Rowing", Integer.valueOf(3), true},
            {"Revenue:", "46,542", "Knitting", Integer.valueOf(2), false},
            {"Revenue Other:", "-", "Speed reading", Integer.valueOf(20), true},
            {"Total Revenue:", "46,542", "Speed reading", Integer.valueOf(20), true},
            {"Cost of Revenue:", "18,216", "Speed reading", Integer.valueOf(20), true},
            {"Gross Profit:", "28,326", "Speed reading", Integer.valueOf(20), true},
            {"Selling Gen. Admin Expenses:", "12,111", "Speed reading", Integer.valueOf(20), true},
            {"Research & Development:", "-", "Speed reading", Integer.valueOf(20), true},
            {"Depreciation/Amortization:", "-", "Speed reading", Integer.valueOf(20), true},
            {"Total Operating Expense:", "154", "Speed reading", Integer.valueOf(20), true},
            {"Operating Income:", "35,810", "Speed reading", Integer.valueOf(20), true},
            {"Interest Income (Exp.), Net NonOp:", "10,732", "Speed reading", Integer.valueOf(20), true},
            {"Interest/Invest Inc. Non-Operating:", "White", "Speed reading", Integer.valueOf(20), true},
            {"Interest Inc. Net Non-Operating:", "White", "Speed reading", Integer.valueOf(20), true},
            {"Gain/Loss on Sale of Assets:", "White", "Speed reading", Integer.valueOf(20), true},
            {"Other, Net:", "White", "Speed reading", Integer.valueOf(20), true},
            {"Net Income Before Taxes:", "White", "Speed reading", Integer.valueOf(20), true},
            {"Income Tax - Total:", "White", "Speed reading", Integer.valueOf(20), true},
            {"Minority Interest:", "Brown", "Pool", Integer.valueOf(10), false},
            {"Equity In Affiliates:", "Brown", "Pool", Integer.valueOf(10), false},
            {"Accounting Change:", "Brown", "Pool", Integer.valueOf(10), false},
            {"Discontinued Operations:", "Brown", "Pool", Integer.valueOf(10), false},
            {"Extraordinary Items:", "Brown", "Pool", Integer.valueOf(10), false},
            {"Net Income:", "Brown", "Pool", Integer.valueOf(10), false}};

        JTable table = new JTable(data, columnNames);
        JScrollPane scrollPane = new JScrollPane(table);
        frame.add(scrollPane, BorderLayout.CENTER);

        JPanel bottompanel = new JPanel(new FlowLayout());
        bottompanel.setBackground(new Color(150, 150, 150));

        JButton compute = new JButton("Compute Ratios");
        bottompanel.add(compute);
        frame.add(bottompanel, BorderLayout.SOUTH);

        frame.pack();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}
于 2012-05-28T03:03:21.020 に答える