【问题标题】:Java Dialog Box [closed]Java 对话框 [关闭]
【发布时间】:2012-08-17 10:59:06
【问题描述】:

我将如何生成以下窗口:

http://postimage.org/image/61aa8hrvb/

我会用什么来格式化?类似于 BorderLayout 的东西?有没有更好的办法?

我尝试过使用 JFrame、JPanel 和 JTextArea 的组合;如下:

 public static void doListAllChecks() {
    int transCount = CAObject.getTransCount();

    JFrame frame = new JFrame();
    frame.setVisible(true);
    JPanel content = new JPanel();
    for (int idx = 0; idx < transCount; idx++)
    {
        Transaction tObj = CAObject.getTrans(idx);
        if (tObj != null) {
            if (tObj.getTransId() == Constants.CHECK_ID)
            {
                System.out.println("Check ID " + tObj.getTransNumber() +
                        " Check Amount " + tObj.getTransAmount());
                JTextArea textArea = new JTextArea(5,20);
                textArea.setText("Check " + tObj.getTransAmount());
                content.add(textArea, BorderLayout.EAST);
            }
        }
    }

    frame.setContentPane(content);
    frame.setTitle("Dialog Display");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.pack();
}

我希望制作一个基本且非常简单的窗口样式。我有数据,但我不知道如何生成窗口。

编辑:我不是在问如何用数据填充窗口——只是如何生成窗口。似乎它只有一个固定的大小(长度和宽度)和一个边框。它似乎是一个准系统窗口。

有什么你能想到的类似于这种风格的窗户吗?

【问题讨论】:

  • 底部应该是一个jTable。
  • 你需要研究如何使用各种LayoutManagers 来获得你想要的东西。 JTable 会很好,但您可以使用 GridBagLayout 或其他嵌套布局创建对话框
  • 谢谢。我知道如果它是 C++ 我会#include 至少格式化标题..虽然窗口仍然是一个谜。

标签: java swing jtable jframe jtextarea


【解决方案1】:

这是一个建议(它可以在很大程度上改进,但至少,你会有一个起点):

public static void main(String[] args) throws Exception {

    String[][] transactions = new String[][] { { "0", "Check", "50.00" }, { "1", "svc.chrg.", "0.15" } };

    JDialog f = new JDialog();
    JTable table = new JTable(transactions, new String[] { "Id", "Type", "Amount" });

    f.add(new JLabel("List all transactions:", JLabel.CENTER), BorderLayout.NORTH);
    f.add(new JScrollPane(table));
    f.setTitle("Dialog Display");

    table.setPreferredSize(new Dimension(table.getPreferredSize().width, table.getRowHeight()
            * transactions.length));

    f.pack();
    f.setSize(470, 120);
    f.setLocationRelativeTo(null); // Center on screen
    f.setVisible(true);
    f.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
}

【讨论】:

    【解决方案2】:

    从 JDialog 开始(如您所问)

    看看JTable格式化内容

    看看BorderLayout

    【讨论】:

      【解决方案3】:

      有什么你能想到的类似于这种风格的窗户吗?

      你可以试试setUndecorated(true),见过here,或许还可以添加一个1像素的边框。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-04
        • 2017-06-04
        • 2011-11-30
        • 1970-01-01
        • 1970-01-01
        • 2021-02-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多