Как вы добавляете графический интерфейс для этой Java-программы?

Я знаю только основные вещи в Java. И мне нужно создать графический интерфейс для этого типа программы. Он показывает информацию о вашей кредитной карте. У этого есть некоторые другие классы и использует rmiregistry. Это хорошо работает в консоли, но мне нужно показать это в графическом интерфейсе. Первое, что здесь подсказывает, это ввести ваше имя (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);
    }

}
13.10.2009 02:37:33
Похоже, в вашем коде форматирования отсутствуют первые несколько строк.
perimosocordiae 13.10.2009 02:42:54
что вы имеете в виду? Это полный код. Ну кроме некоторых занятий
user188801 13.10.2009 13:11:11
4 ОТВЕТА

Перво-наперво, быстрый взгляд на Awt / Swing в Javadoc

В зависимости от того, что вам нужно сделать, вы можете очень быстро добавить графический интерфейс в первый раз, используя JFrame и некоторую TextArea (текстовая область будет вашим «выводом на консоль»), это самый быстрый способ получить что-то визуальное из вашего приставка.

После, возможно, вы будете использовать некоторые данные для имени учетной записи во всплывающем окне (см. PopupFactory).

В первый раз вы можете быстро просмотреть различные примеры графического интерфейса на веб-сайте Sun, чтобы понять, как он работает, прежде чем разрабатывать более полный для вашего приложения.

6
13.10.2009 02:50:48
Спасибо. Я понимаю, что вы имеете в виду. И об этом я тоже думаю. Но мне может понадобиться изучить IDE, которую я использую, если я могу это сделать. И это займет время. Есть ли код для этого? Чтобы я мог изменить это или что-то и учиться?
user188801 13.10.2009 13:12:42
Как сказано в другом ответе, я бы не использовал NetBeans GUI Builder, это не поможет вам понять, как создается Gui и как Java управляет компонентами Gui. Попробуйте очень простой способ работы с графическим интерфейсом, и в тот день, когда вы будете владеть этой областью, используйте NetBean GUI Builder, если у вас действительно нет времени на одно из ваших приложений (или если вам не стыдно видеть автоматически сгенерированный код)
Vincent B. 14.10.2009 00:51:00

Редактор графического интерфейса в NetBeans, на самом деле, неплох для начала быстрого создания графического интерфейса для небольшого приложения. Зная лишь немного о создании графических интерфейсов (а затем только AWT, а не Swing), я сделал свое первое приложение Swing примерно за десять минут.

Так как вы новичок в Java, я думаю, вы еще не выбрали IDE. NetBeans - это хорошее место для начала.

2
13.10.2009 03:06:50
Я использую NetBeans, и я изучаю это сейчас. Но это может занять время. :)
user188801 13.10.2009 13:20:09

Начните с чтения учебника по Swing . Есть много примеров программ для изучения. Тогда вы можете задать конкретные вопросы, если у вас возникнут проблемы.

2
13.10.2009 03:58:39

Я не рекомендую вам использовать NetBeans GUI Builder, он генерирует много ненужного кода. Вот несколько примеров, которые я написал, чтобы помочь вам начать с Swing. Это простой пример создания одного JFrame с двумя JButton и одним JTextField. Вы также можете быть заинтересованы в паттерне 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(); 
    }
}
2
13.10.2009 07:46:36