如何将GUI添加到此java程序?
我只知道java的基本知识。我需要为这种类型的程序创建一个GUI。它显示你的信用卡信息。它有一些其他类,并利用RMI注册表。这在控制台中运行良好,但我需要在GUI中显示它。这里提示的第一件事是输入您的名字(java购物者localhost我的名字)。然后它会显示你的信用卡信息。有人能帮我吗?请原谅我,谢谢你如何将GUI添加到此java程序?,java,user-interface,rmi,credit-card,Java,User Interface,Rmi,Credit Card,我只知道java的基本知识。我需要为这种类型的程序创建一个GUI。它显示你的信用卡信息。它有一些其他类,并利用RMI注册表。这在控制台中运行良好,但我需要在GUI中显示它。这里提示的第一件事是输入您的名字(java购物者localhost我的名字)。然后它会显示你的信用卡信息。有人能帮我吗?请原谅我,谢谢你 import java.rmi.*; import javax.swing.*; public class Shopper { public static void main(St
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.rmi.*;
导入javax.swing.*;
公务舱购物者{
公共静态void main(字符串参数[])
{
CreditManager cm=null;
信用卡账户=空;
如果(args.length第一件事,请快速查看Awt/Swing
根据您需要做的事情,您可以在第一时间使用JFrame和一些TextArea(文本区域将是您的“控制台输出”)非常快速地添加gui,这是从控制台中获得可视内容的最快方法
之后,您可能会在弹出窗口中为帐户名使用一些输入(请参阅PopupFactory)
在为您的应用程序设计一个更完整的gui之前,您可以第一时间快速查看sun网站上的各种gui示例,以了解其工作原理。中的gui编辑器对于快速开始为小型应用程序创建gui来说其实并不坏。对创建gui只了解一点(然后是AWT,不是Swing)我在大约十分钟内完成了我的第一个Swing应用程序
由于您是Java新手,我猜您还没有选择IDE。NetBeans是一个很好的起点。从阅读开始。有很多示例程序可供学习。如果遇到问题,您可以问一些具体问题。我不建议您使用NetBeans GUI Builder,它会生成大量不必要的代码。
下面是我编写的帮助您开始使用Swing的一些示例。这是一个使用两个JButton和一个JTextField创建JFrame的简单示例。
您可能还对MVC模式感兴趣,您可以在此处阅读有关该特定主题的更多信息()
另外,如果您想显示结果,也许您应该尝试使用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();
}
}
看起来你的代码格式缺少了前几行。你的意思是什么?这是完整的代码。除了一些classesThanks。我明白你的意思。这也是我的想法。但是如果我可以这样做,我可能需要探索我正在使用的IDE。这需要时间。有没有代码?我可以修改它或其他什么吗然后学习?正如另一个答案中所说,我不会使用NetBean GUI Builder,它不会帮助您了解GUI是如何制作的以及Java如何管理GUI组件。尝试一些非常简单的GUI操作方法,如果您真的没有时间使用某个应用程序,那么在您拥有该领域的那一天,使用NetBean GUI Builder(或者如果您不羞于看到自动生成的代码)我正在使用netbeans,现在正在学习。但这可能需要时间。:)