【问题标题】:How do you add GUI to this java program?你如何将 GUI 添加到这个 java 程序中?
【发布时间】:2009-10-13 02:37:33
【问题描述】:

我只知道java中的基本知识。我需要为这种类型的程序创建一个 GUI。它显示您的信用卡信息。它还有一些其他类并使用 rmiregistry。这在控制台中运行良好,但我需要在 GUI 中显示它。这里提示的第一件事是输入您的姓名(java Shopper localhost my name)。然后它会显示您的信用卡信息。谁能帮我?请和谢谢你

import java.rmi.*;
import javax.swing.*;

public class Shopper {
    public static void main(String args[])
    {
        CreditManager cm = null;
        CreditCard account = null;

        if(args.length<2)
        {
            System.err.println("Usage:");
            System.err.println("java Shopper <server> <accountname>");
            System.exit(1);
        }
        try
        {
            String url = new String("//"+args[0]+"/cardManager");
            System.out.println("Shopper: lookup cardManager, url="+url);
            cm = (CreditManager) Naming.lookup(url);
        }catch(Exception e)
        {
            System.out.println("Error in getting Card Manager "+e);
            System.exit(1);
        }

        try
        {
            account = cm.findCreditAccount(args[1]);
            System.out.println("Found account for "+args[1]);
        }catch(Exception e)
        {
            System.out.println("Error in getting acocunt for "+args[1]);
            System.exit(1);
        }

        try
        {

             System.out.println("Available credit is "+account.getCreditLine());
            System.out.println("Changing pin number for account");
            account.setSignature(1234);
            System.out.println("Buying a new watch for $100");
            account.makePurchase(100.0f, 1234);
            System.out.println("Available credit is now "+account.getCreditLine());
            System.out.println("Buying a new pair of shoes for $160");
            account.makePurchase(160.0f, 1234);
            System.out.println("Cardholder: Paying off $136 of balance");
            account.payTowardsBalance(136.0f);
            System.out.println("Available credit is now "+account.getCreditLine());

        }catch(Exception e)
        {
            System.out.println("Transaction error for "+args[1]);
        }

        System.exit(0);
    }

}

【问题讨论】:

  • 您的代码格式似乎缺少前几行。
  • 什么意思?这就是完整的代码。好吧,除了一些课程

标签: java user-interface rmi credit-card


【解决方案1】:

首先,快速浏览一下 Awt/Swing in the Javadoc

根据您的需要,您可以在第一次使用 JFrame 和一些 TextArea 时非常快速地添加 gui(文本区域将是您的“控制台输出”),这是获得视觉效果的最快方法离开你的控制台。

之后,您可能会在弹出窗口中输入帐户名称(请参阅 PopupFactory)。

您可以在第一时间快速浏览 sun 网站上的各种 gui 示例,以了解其工作原理,然后再为您的应用程序设计一个更完整的示例。

【讨论】:

  • 谢谢。我明白你的意思。我也是这么想的。但如果我可以这样做,我可能需要探索我正在使用的 IDE。这需要时间。有代码吗?所以我可以改变它或学习什么?
  • 正如在另一个答案中所说,我不会使用 NetBeans GUI Builder,它不会帮助您了解 Gui 的制作方式以及 Java 如何管理 Gui 组件。尝试一些非常简单的关于 Gui 的方法,如果您真的没有时间使用您的应用程序之一(或者如果您不羞于看到自动生成的代码),请使用 NetBean GUI Builder。 /跨度>
【解决方案2】:

NetBeans 中的 GUI 编辑器实际上对于快速开始为小型应用程序创建 GUI 还不错。对创建 GUI 知之甚少(然后只知道 AWT,而不是 Swing),我在大约十分钟内完成了我的第一个 Swing 应用程序。

由于您是 Java 新手,我猜您还没有选择 IDE。 NetBeans 是一个很好的起点。

【讨论】:

  • 我正在使用 netbeans,我现在正在学习它。但这可能需要时间。:)
【解决方案3】:

首先阅读Swing Tutorial。有很多示例程序可供学习。然后,如果遇到问题,您可以提出具体问题。

【讨论】:

    【解决方案4】:

    我不建议您使用 NetBeans GUI Builder,它会生成很多不必要的代码。 这是我编写的一些示例,旨在帮助您开始使用 Swing。这是一个使用两个 JButton 和一个 JTextField 创建一个 JFrame 的简单示例。 您可能也对 MVC 模式感兴趣,您可以在此处阅读有关该特定主题的更多信息 (http://pclc.pace.edu/~bergin/mvc/mvcgui.html) 另外,如果您想显示结果,也许您应该尝试使用 JTextPane 控件,但这只是我的意见

    public class MainWindowClient implements ActionListener {
    
        JFrame frame;
        JTextField jtxInput;
    
        JButton btnConnect;
        JButton btnDisconnect;
    
        public MainWindowClient() {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    init();
                }
            }); 
        }
    
        public void init() {
            try {
                UIManager
                        .setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
            } 
            catch (ClassNotFoundException e) {}
            catch (InstantiationException e) {} 
            catch (IllegalAccessException e) {}
            catch (UnsupportedLookAndFeelException e) {}
    
            frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLayout(new BorderLayout());
            frame.setTitle("Client");
            frame.setSize(800, 600);
    
            final JPanel title = new JPanel(new FlowLayout(FlowLayout.LEFT));
            title.setBackground(new Color(255, 255, 255));
            final JLabel lblAppName = new JLabel("Client Application");
            lblAppName.setFont(new Font("sansserif", Font.PLAIN, 22));
            title.add(lblAppName);
            title.setBorder(BorderFactory.createTitledBorder(""));
    
            final JPanel panelInputBoard = new JPanel(new GridLayout());
            panelLogArea.setBorder(BorderFactory.createTitledBorder("Input"));
            jtxInput = new JTextField("");
    
            panelLogArea.add(jtxInput);
    
            final JPanel panelCommandBoard = new JPanel(new FlowLayout(FlowLayout.LEFT));
            panelCommandBoard.setBorder(BorderFactory.createTitledBorder("Client Commands"));
    
            btnConnect = new JButton("Connect");
            btnConnect.addActionListener(this);
    
            btnDisconnect = new JButton("Disconnect");
            btnDisconnect.addActionListener(this);
    
            panelCommandBoard.add(btnConnect);
            panelCommandBoard.add(btnDisconnect);
    
            frame.add(title, BorderLayout.NORTH);
            frame.add(panelCommandBoard, BorderLayout.SOUTH);
            frame.add(panelInputBoard, BorderLayout.NORTH);
    
            frame.setVisible(true);
        }
    
        @Override
        public void actionPerformed(ActionEvent event) {
            JButton eventSource = (JButton) event.getSource();
            if(eventSource.getText().equals("Connect")) {
                // Do some stuff
            }
            if(eventSource.getText().equals("Disconnect")) {
                // Do some stuff
            }       
        }
    
    
        public static void main(String[] args) {
            MainWindowClient m = new MainWindowClient(); 
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-16
      • 2020-04-03
      • 1970-01-01
      • 1970-01-01
      • 2014-07-31
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      相关资源
      最近更新 更多