package library.client;
import javax.naming.InitialContext;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.reflect.Method;
import java.sql.ResultSet;
import javax.ejb.*;
import javax.naming.*;
import javax.swing.*;
import library.common.*;
@SuppressWarnings("serial")
public class LibraryClient extends JFrame implements ActionListener {
private @EJB LibraryInterface li;
private JTextField book_author = new JTextField(10);
private JTextField book_title = new JTextField(10);
private JTextField book_isbn = new JTextField(10);
private JLabel author_label = new JLabel("Podaj autora:");
private JLabel book_title_label = new JLabel("Podaj tytul ksiazki");
private JLabel isbn_label = new JLabel("Podaj ISBN");
private JTextArea display_books = new JTextArea(20,50);
private JButton search = new JButton("Search");
private ResultSet resultset;
public LibraryClient() {
this("DEFAULT_CONTEXT");
}
private JPanel createPanel1(){
JPanel panel = new JPanel();
panel.add(author_label);
panel.add(book_author);
panel.add(book_title_label);
panel.add(book_title);
panel.add(isbn_label);
panel.add(book_isbn);
panel.add(search);
////search.setActionCommand("ISBN");
search.addActionListener(this);
return panel;
}
private JPanel createPanel2(){
JPanel panel = new JPanel();
panel.add(display_books);
return panel;
}
private JPanel createPanels(){
JPanel panel = new JPanel();
//Use default FlowLayout.
panel.setLayout(new BorderLayout());
panel.add(createPanel1(), BorderLayout.NORTH);
panel.add(createPanel2(), BorderLayout.SOUTH);
return panel;
}
public LibraryClient(String appType) {
init(appType);
JFrame frame = new JFrame("Library");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// /final Table table = new Table();
frame.setContentPane(createPanels());
frame.pack();
// /f.setLocationRelativeTo(null);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
try {
display_books.setText("");
display_books.setText("Wyszukane Ksiazki\n");
if(!book_author.getText().equals("")){
resultset=li.getBookByAuthor(book_author.getText());
}else if(!book_title.getText().equals("")){
resultset=li.getBookByName(book_title.getText());
}else if(!book_isbn.getText().equals("")){
resultset=li.getBookByISBN(book_isbn.getText());
}else {
System.out.println("Before->resultset=li.getAllBooks()");
resultset=li.getAllBooks();
System.out.println("After->resultset=li.getAllBooks()");
}
while(resultset.next()){
System.out.println("in while resultset.next()");
String name = resultset.getString("name");
String author =resultset.getString("author");
String isbn = resultset.getString("ISBN");
display_books.append("\n"+ name + " " + author +" "+ isbn);
}
} catch(Exception exc) { exc.printStackTrace(); }
}
private void init(String type) {
if (type.equals("JAVA_APP")) li = new library.ejb.LibraryBean();
else if (type.equals("JAVA_CLIENT")) {
try {
InitialContext ic = new InitialContext();
li = (LibraryInterface) ic.lookup("library.common.LibraryInterface");
} catch (NamingException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
if (args.length >= 1) new LibraryClient(args[0]);
else new LibraryClient();
}
}
jak uruchamiam aplikacje z bata z parametrem JAVA_CLIENT
wyrzuca exception kiedy dochodzi do jednej z tych funcji
resultset=li.getBookByAuthor(book_author.getText());
resultset=li.getBookByName(book_title.getText());
resultset=li.getBookByISBN(book_isbn.getText());
resultset=li.getAllBooks();
Prosze o pomoc
Dziekuje