0

i'm writing a small desktop application to store details entered in to a swing ui.this application saves, edits and deletes the records.every thing is working fine but when writing searching functionality when i search the records i'm able to fill the searched record in to the text fields successfully.but if there are more than one record in result set then i will have a problem. so i want to display the resultset in a table format please help me.

here is the sample code:

import java.awt.*;

import java.awt.event.*;

import java.sql.*;

import java.sql.ResultSet;

import java.sql.SQLException;

class MyFrame extends Frame implements ActionListener

{

	Panel ButtonsPanel,MoveButtonsPanel,DMLButtonsPanel,DisplayPanel;

	TextField txtDetail1,txtDetail2,txtDetail3,txtDetail6,txtDetail5,txtDetail8,txtDetail7,txtDetail4,txtDetail9,txtDetail10;

	Button Clear,Search,Insert,Update,Delete,Exit;

	Button First,Prev,Next,Last;

	Connection con;

	Statement stmt;

	ResultSet rs;

	MyFrame()

	{

		super("Movie Database");	

		ButtonsPanel = new Panel();

		ButtonsPanel.setLayout(new GridLayout(2,1));

		First = new Button("|<");

		First.addActionListener(this);

		Prev = new Button("<");

		Prev.addActionListener(this);

		Next = new Button(">");

		Next.addActionListener(this);

		Last = new Button(">|");

		Last.addActionListener(this);

		MoveButtonsPanel = new Panel();

		MoveButtonsPanel.add(First);

		MoveButtonsPanel.add(Prev);

		MoveButtonsPanel.add(Next);

		MoveButtonsPanel.add(Last);

		ButtonsPanel.add(MoveButtonsPanel);

		Clear = new Button("Clear");

		Clear.addActionListener(this);

		Search = new Button("Search");

		Search.addActionListener(this);

		Insert = new Button("Insert");

		Insert.addActionListener(this);

		Update = new Button("Update");

		Update.addActionListener(this);

		Delete = new Button("Delete");

		Delete.addActionListener(this);

		Exit = new Button("Exit");

		Exit.addActionListener(this);

		DMLButtonsPanel = new Panel();

		DMLButtonsPanel.add(Clear);

		DMLButtonsPanel.add(Search);

		DMLButtonsPanel.add(Insert);

		DMLButtonsPanel.add(Update);

		DMLButtonsPanel.add(Delete);

		DMLButtonsPanel.add(Exit);

		ButtonsPanel.add(DMLButtonsPanel);

		txtDetail1 = new TextField(20);

		txtDetail3 = new TextField(4);

		txtDetail2 = new TextField(20);

		txtDetail4 = new TextField(20);

		txtDetail5 = new TextField(20);

		txtDetail6 = new TextField(20);

		txtDetail7 = new TextField(4);

		txtDetail8 = new TextField(4);

		txtDetail9 = new TextField(4);

		txtDetail10 = new TextField(20);

		DisplayPanel = new Panel();

		DisplayPanel.setLayout(new GridLayout(10,2));

		DisplayPanel.add(new Label("Detail1"));

		DisplayPanel.add(txtDetail1);

		DisplayPanel.add(new Label("Detail3"));

		DisplayPanel.add(txtDetail3);

		DisplayPanel.add(new Label("Detail2"));

		DisplayPanel.add(txtDetail2);

		DisplayPanel.add(new Label("Detail4"));

		DisplayPanel.add(txtDetail4);

		DisplayPanel.add(new Label("Detail5"));

		DisplayPanel.add(txtDetail5);

		DisplayPanel.add(new Label("Detail6"));

		DisplayPanel.add(txtDetail6);

		DisplayPanel.add(new Label("Detail7"));

		DisplayPanel.add(txtDetail7);

		DisplayPanel.add(new Label("Detail8"));

		DisplayPanel.add(txtDetail8);

		DisplayPanel.add(new Label("Detail9"));

		DisplayPanel.add(txtDetail9);

		DisplayPanel.add(new Label("Detail10"));

		DisplayPanel.add(txtDetail10);

		add(DisplayPanel);

		add(ButtonsPanel,BorderLayout.SOUTH);

		pack();

		setVisible(true);

		getConnected();

	}

	public void actionPerformed(ActionEvent ae)

	{

		if(ae.getSource() == First)

			firstRecord();

		else if(ae.getSource() == Prev)

			previousRecord();

		else if(ae.getSource() == Next)

			nextRecord();

		else if(ae.getSource() == Last)

			lastRecord();

		else if(ae.getSource() == Clear)

			clearDetails();	

		else if(ae.getSource() == Search)

			searchRecord();

		else if(ae.getSource() == Insert)

			insertRecord();

		else if(ae.getSource() == Update)

			updateRecord();

		else if(ae.getSource() == Delete)

			deleteRecord();

		else

			closeWindow();

	}

	public void closeWindow()

	{

		System.exit(0);

	}

	public void firstRecord()

	{

		try

		{

			rs.first();

			fillDetails();

		}catch(SQLException se)

		{

			msgbox("Error Moving to First Record...");

		}

	}

	public void previousRecord()

	{

		try

		{

			rs.previous();

			if(rs.isBeforeFirst())

				rs.first();

			fillDetails();

		}catch(SQLException se)

		{

			msgbox("Error Moving to Previous Record...");

		}

	}

	public void nextRecord()

	{

		try

		{

			rs.next();

			if(rs.isAfterLast())

				rs.last();

			fillDetails();

		}catch(SQLException se)

		{

			msgbox("Error Moving to Next Record...");

		}

	}

	public void lastRecord()

	{

		try

		{

			rs.last();

			fillDetails();

		}catch(SQLException se)

		{

			msgbox("Error Moving to Last Record...");

		}

	}

	public void fillDetails()

	{

		try

		{

			txtDetail1.setText(rs.getString(1));

			txtDetail3.setText(rs.getString(2));

			txtDetail2.setText(rs.getString(3));

			txtDetail4.setText(rs.getString(4));

			txtDetail5.setText(rs.getString(5));

			txtDetail6.setText(rs.getString(6));

			txtDetail7.setText(rs.getString(7));

			txtDetail8.setText(rs.getString(8));

			txtDetail9.setText(rs.getString(9));

			txtDetail10.setText(rs.getString(10));

		}catch(Exception e)

		{

			msgbox("Error Filling Details...");

			System.out.println("Error ... " + e);

		}

	}

	public void clearDetails()

	{

		try

		{

			txtDetail1.setText("");

			txtDetail3.setText("");

			txtDetail2.setText("");

			txtDetail4.setText("");

			txtDetail5.setText("");

			txtDetail6.setText("");

			txtDetail7.setText("");

			txtDetail8.setText("");

			txtDetail9.setText("");

			txtDetail10.setText("");

		}catch(Exception e)

		{

			msgbox("Error Clearing Details...");

			System.out.println("Error ... " + e);

		}

	}

	public void searchRecord()

	{

		try

		{

			String SqlStr;

			ResultSet res;

			SqlStr ="SELECT * from DETAIL_DATABASE where Detail10 like '%"+txtDetail1.getText()+"%'";

			res = stmt.executeQuery(SqlStr);

			System.out.println("SqlStr"+SqlStr);

			if(res!=null)

			{

				res.next();

				setTitle("Search Successfull...");

				msgbox(""+res.getString(1)+"|"+res.getString(2)+"|"+res.getString(3)+"|"+res.getString(4)+"|"+res.getString(5)+"|"+res.getString(6)+"|"+res.getString(7)+"|"+res.getString(8)+"|"+res.getString(9)+"|"+res.getString(10)+"");

			}

			else

			msgbox("Search Unsuccessfull");

		}catch(SQLException se)

		{

			System.out.println("Error " + se);

			msgbox("Error Searching Record...");

		}

	}

	public void insertRecord()

	{

		try

		{

			String SqlStr;

			int Result;

			rs.moveToInsertRow();

			rs.updateString(1,txtDetail1.getText());

			rs.updateString(2,txtDetail3.getText());

			rs.updateString(3,txtDetail2.getText());

			rs.updateString(4,txtDetail4.getText());

			rs.updateString(5,txtDetail5.getText());

			rs.updateString(6,txtDetail6.getText());

			rs.updateString(7,txtDetail7.getText());

			rs.updateString(8,txtDetail8.getText());

			rs.updateString(9,txtDetail9.getText());

			rs.updateString(10,txtDetail10.getText());

			rs.insertRow();

			rs.moveToCurrentRow();

			setTitle("Insert Successfull...");

			rs.refreshRow();

		}catch(SQLException se)

		{

			System.out.println("Error " + se);

			msgbox("Error Inserting Record...");

		}

	}	

	public void updateRecord()

	{

		try

		{

			rs.updateString(1,txtDetail1.getText());

			rs.updateString(2,txtDetail3.getText());

			rs.updateString(3,txtDetail2.getText());

			rs.updateString(4,txtDetail4.getText());

			rs.updateString(5,txtDetail5.getText());

			rs.updateString(6,txtDetail6.getText());

			rs.updateString(7,txtDetail7.getText());

			rs.updateString(8,txtDetail8.getText());

			rs.updateString(9,txtDetail9.getText());

			rs.updateString(10,txtDetail10.getText());

			rs.updateRow();

			rs.refreshRow();

			setTitle("Update Successfull...");

		}catch(SQLException ae)

		{

			msgbox("Error Updating Record...");

		}

	}

	public void deleteRecord()

	{

		try

		{

			rs.deleteRow();

			rs.last();

			rs.refreshRow();

			fillDetails();

			setTitle("Delete Successfull...");

		}catch(SQLException e)

		{

			msgbox("Delete Unsuccessfull...");

		}

	}

	public void getConnected()

	{

		try

		{

			setTitle("Getting Connection...");

			Class.forName("com.mysql.jdbc.Driver");

			con = DriverManager.getConnection("jdbc:mysql://localhost/detaildatabase","root","root");

			stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

			rs = stmt.executeQuery("select * from detail_database");

			rs.next();

			fillDetails();

			setTitle("Connected...");

		}catch(SQLException se)

		{

			msgbox("Error getting Connection...");

			System.out.println(se);

		}

		catch(Exception e)

		{

			msgbox("Check your Driver name...");

		}

	}

	public void msgbox(String msg)

	{

		new msgboxDialog(this,msg);

	}

	class msgboxDialog extends Dialog implements ActionListener

	{

		Frame Parent;

		Label lblMsg;

		Button Ok;

		Panel ButtonPanel;

		msgboxDialog(Frame Parent,String msg)

		{

			super(Parent,"Error Dialog");

			this.Parent = Parent;

			lblMsg = new Label(msg);

			Ok = new Button("Ok");

			Ok.addActionListener(this);

			ButtonPanel = new Panel();

			ButtonPanel.add(Ok);

			add(lblMsg);

			add(ButtonPanel,BorderLayout.SOUTH);

			pack();

			setVisible(true);

		}

		public void actionPerformed(ActionEvent ae)

		{

			Parent.setTitle(lblMsg.getText());

			setVisible(false);

			dispose();

		}

	}

}

class DetailDatabase

{

	public static void main(String args[])

	{

		new MyFrame();

	}

}
3
Contributors
5
Replies
6
Views
5 Years
Discussion Span
Last Post by kvskchaitanya
0

In a fraction of the time it took to post that you could have Googled resultset swing table and got any amount of sample code and discussions.

0

agreed with JamesCherrill

but doesn't allows Update just Read (advice)

ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
0

actually i'm pretty new to java.. i'm basically an OCA had good knowledge about sql, pl/sql.so if u can plz guide me how to in a bit clear manner it would help me a lot...

tnq

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.