📄 auctionclient.java
字号:
package auction;
import java.io.*;
import javax.naming.*;
import javax.ejb.*;
import java.rmi.RemoteException;
import java.util.*;
import java.text.NumberFormat;
import bidder.*;
import registration.*;
import seller.*;
import search.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.awt.*;
import java.text.*;
import javax.swing.table.*;
import javax.swing.tree.*;
public class AuctionClient implements ActionListener{
//Change the standalone value to false if you want to
//run this program with your ejb server
final static boolean standaloneMode=true;
javax.naming.Context ctx=null;
JMenuBar mb = new JMenuBar();
JMenu file = new JMenu("File");
JMenu reports = new JMenu("Reports");
JMenuItem filePrint = new JMenuItem("Print");
JSeparator separator = new JSeparator();
JMenuItem fileQuit = new JMenuItem("Quit");
JMenuItem itemList = new JMenuItem("List All Items");
JMenuItem browseItems = new JMenuItem("Browse Items");
JFrame frame=new JFrame();
JViewport innerPort, headers;
JScrollBar scrollBar;
JScrollPane scrollPane;
JTable fixedTable, scrollTable;
TableColumnModel fixedColumnModel, scrollColumnModel;
int rowHeight=64;
JTree tree;
DefaultMutableTreeNode[] nodes;
JTextField findField;
JPanel homePanel=null;
JPanel browsePanel=null;
JPanel scrollPanel=null;
public AuctionClient() {
if(!standaloneMode) {
try {
ctx = getInitialContext();
} catch (Exception e) {
System.out.println("error contacting EJB server"+e);
}
}
/* Add menu items to menus */
file.add(filePrint);
file.add(separator);
file.add(fileQuit);
reports.add(itemList);
reports.add(browseItems);
mb.add(file);
mb.add(reports);
frame.setJMenuBar(mb);
filePrint.addActionListener(this);
fileQuit.addActionListener(this);
itemList.addActionListener(this);
browseItems.addActionListener(this);
homePanel = new JPanel();
homePanel.setLayout(new CardLayout());
browsePanel = new JPanel();
browsePanel.setLayout(new BorderLayout());
scrollPanel = new JPanel();
scrollPanel.setLayout(new BorderLayout());
homePanel.add(scrollPanel, "List All Items");
homePanel.add(browsePanel, "Browse Items");
frame.getContentPane().add(homePanel, BorderLayout.CENTER);
frame.setSize(200,100);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent evt) {
Object obj = evt.getSource();
if (obj == itemList) {
try {
listAllItems();
((CardLayout)homePanel.getLayout()).show(homePanel,
((JMenuItem)obj).getText());
} catch (Exception e) {
System.out.println("Exception: "+e);
}
} else if (obj == browseItems) {
try {
browseItems();
((CardLayout)homePanel.getLayout()).show(homePanel,
((JMenuItem)obj).getText());
} catch (Exception e) {
System.out.println("Exception: "+e);
}
} else if (obj == fileQuit) {
frame.dispose();
System.exit(0);
}
}
static public javax.naming.Context getInitialContext()
throws Exception {
Properties p = new Properties();
p.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.TengahInitialContextFactory");
return new InitialContext(p);
}
private void listAllItems() throws IOException {
ResultsModel rm=new ResultsModel();
if(!standaloneMode) {
try {
BidderHome bhome=(BidderHome) ctx.lookup("bidder");
Bidder bid=bhome.create();
Enumeration enum=(Enumeration)bid.getItemList();
if(enum != null) {
rm.update(enum);
}
} catch (Exception e) {
System.out.println("AuctionServlet <list>:"+e);
}
} else {
TestData td= new TestData();
rm.update(td.results());
}
scrollTable=new JTable(rm);
adjustColumnWidth(scrollTable.getColumn("End Date"), 150);
scrollTable.setRowHeight(rowHeight);
adjustColumnWidth(scrollTable.getColumn("Description"), 120);
scrollColumnModel = scrollTable.getColumnModel();
fixedColumnModel = new DefaultTableColumnModel();
TableColumn col = scrollColumnModel.getColumn(0);
scrollColumnModel.removeColumn(col);
fixedColumnModel.addColumn(col);
fixedTable = new JTable(rm,fixedColumnModel);
fixedTable.setRowHeight(scrollTable.getRowHeight());
headers = new JViewport();
ListSelectionModel fixedSelection = fixedTable.getSelectionModel();
fixedSelection.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
ListSelectionModel lsm = (ListSelectionModel)e.getSource();
if (!lsm.isSelectionEmpty()) {
setScrollableRow();
}
}
});
ListSelectionModel scrollSelection = scrollTable.getSelectionModel();
scrollSelection.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
ListSelectionModel lsm = (ListSelectionModel)e.getSource();
if (!lsm.isSelectionEmpty()) {
setFixedRow();
}
}
});
CustomRenderer custom = new CustomRenderer();
custom.setHorizontalAlignment(JLabel.CENTER);
scrollColumnModel.getColumn(2).setCellRenderer(custom);
scrollColumnModel.getColumn(3).setCellRenderer(new CustomButtonRenderer());
CustomButtonEditor customEdit=new CustomButtonEditor(frame);
scrollColumnModel.getColumn(3).setCellEditor(customEdit);
headers.add(scrollTable.getTableHeader());
JPanel topPanel = new JPanel();
topPanel.setLayout(new BoxLayout(topPanel, BoxLayout.X_AXIS));
adjustColumnWidth(fixedColumnModel.getColumn(0), 100);
JTableHeader fixedHeader=fixedTable.getTableHeader();
fixedHeader.setAlignmentY(Component.TOP_ALIGNMENT);
topPanel.add(fixedHeader);
topPanel.add(Box.createRigidArea(new Dimension(2, 0)));
topPanel.setPreferredSize(new Dimension(400, 40));
JPanel headerPanel = new JPanel();
headerPanel.setAlignmentY(Component.TOP_ALIGNMENT);
headerPanel.setLayout(new BorderLayout());
JScrollPane scrollpane = new JScrollPane();
scrollBar = scrollpane.getHorizontalScrollBar();
headerPanel.add(headers, "North");
headerPanel.add(scrollBar, "South");
topPanel.add(headerPanel);
scrollTable.setPreferredScrollableViewportSize( new
Dimension(300,rowHeight*scrollTable.getRowCount()));
fixedTable.setPreferredScrollableViewportSize( new
Dimension(100,rowHeight*fixedTable.getRowCount()));
fixedTable.setPreferredSize( new
Dimension(100,rowHeight*fixedTable.getRowCount()));
innerPort = new JViewport();
innerPort.setView(scrollTable);
scrollpane.setViewport(innerPort);
scrollBar.getModel().addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e)
{
Point q = headers.getViewPosition();
Point p = innerPort.getViewPosition();
int val = scrollBar.getModel().getValue();
p.x = val;
q.x = val;
headers.setViewPosition(p);
headers.repaint(headers.getViewRect());
innerPort.setViewPosition(p);
innerPort.repaint(innerPort.getViewRect());
}
});
scrollTable.getTableHeader().setUpdateTableInRealTime(false);
JPanel bottomPanel = new JPanel();
bottomPanel.setLayout(new BoxLayout(bottomPanel, BoxLayout.X_AXIS));
fixedTable.setAlignmentY(Component.TOP_ALIGNMENT);
bottomPanel.add(fixedTable);
bottomPanel.add(Box.createRigidArea(new Dimension(2, 0)));
innerPort.setAlignmentY(Component.TOP_ALIGNMENT);
bottomPanel.add(innerPort);
bottomPanel.add(Box.createRigidArea(new Dimension(2, 0)));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -