0

Here is my code for an applet in java it runs well but shows error unreported exception java.io.IOException; at the functions highlighted in green
I wanna ask the functions i've highlighted highlighted in green in code are supported in applets?
Thnx in advance

/*
* Java(TM) SE 6 version.
*/


import java.applet.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.io.*;
import java.net.*;
public class chat extends JApplet implements ActionListener
{
private JTextField chatField;
private JTextField loginField;
private JPasswordField passwordField;
private JTextArea chatarea;
private JLabel status;
private static String userName;
private static String passWord;
private Connection con = null;
private Statement stmt;
private String query = "select * from users";
private Socket kkSocket = null;
private  PrintWriter out = null;
private   BufferedReader in = null;
private int auth=0;
public  void main(String[] args) throws IOException {
init();
}
public void init(){
//Execute a job on the event-dispatching thread:
//creating this applet's GUI.
try {
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
createGUI();
}
});
} catch (Exception e) {
System.err.println("createGUI didn't successfully complete");
}
}


private void createGUI(){
status = new JLabel();
JPanel contentPane = new JPanel(new GridBagLayout());
contentPane.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createLineBorder(Color.BLACK),
BorderFactory.createEmptyBorder(10,10,5,5)));
setContentPane(contentPane);
GridBagConstraints c = new GridBagConstraints();
GridBagConstraints d = new GridBagConstraints();
if(auth==0){
c.insets = new Insets(0,0,0,0);
d.insets = new Insets(0,50,0,0);
loginField = new JTextField(10);
c.weightx = 1.0;
c.ipady = 5;
JLabel label1 = new JLabel("USERNAME:");
label1.setLabelFor(loginField);
add(label1,d);
c.anchor = GridBagConstraints.LINE_START;
c.gridwidth = GridBagConstraints.REMAINDER;
add(loginField, c);
loginField.addActionListener(this);


c.insets = new Insets(10,0,0,0);
d.insets = new Insets(10,50,0,0);
passwordField = new JPasswordField(10);
JLabel label2 = new JLabel("PASSWORD:");
label2.setLabelFor(passwordField);
add(label2,d);
add(passwordField, c);
c.gridwidth = GridBagConstraints.REMAINDER;
passwordField.addActionListener(this);


c.insets = new Insets(20,100,0,0);
JButton login = new JButton("LOGIN");
c.fill = GridBagConstraints.NONE; //keep the button small
c.ipady = 0;
c.ipadx = 10;
add(login, c);
login.addActionListener(this);
c.insets = new Insets(20,50,0,0);
add(status,c);
}


else {
c.insets = new Insets(0,0,5,5);
chatField = new JTextField(40);
c.ipady = 10;
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 1.0;
add(chatField, c);



JButton send = new JButton("SEND");
c.ipady = 0;
c.gridwidth = GridBagConstraints.REMAINDER; //end row
c.anchor = GridBagConstraints.LINE_START; //stick to the text field                                                  //
c.fill = GridBagConstraints.NONE; //keep the button small
c.weightx = 0.0;
add(send, c);


chatarea = new JTextArea(5, 60);
chatarea.setEditable(false);
c.anchor = GridBagConstraints.CENTER; //reset to the default
c.fill = GridBagConstraints.BOTH; //make this big
c.weighty = 1.0;
add(new JScrollPane(chatarea), c);}


}
public void actionPerformed(ActionEvent event) throws IOException
{
if(auth==0){
userName = loginField.getText();
char[] input = passwordField.getPassword();
passWord = new String(input);
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://localhost/test?user=root&password=anchal2");


if(!con.isClosed())
stmt = con.createStatement();
else
status.setText("Error connecting to database");
ResultSet rs = stmt.executeQuery(query);
rs.first();
String name = rs.getString("name");
String pass = rs.getString("password");
if(userName.compareTo(name)==0 && passWord.compareTo(pass)==0){
status.setText("Logged in");
auth=1;
createGUI();
}
else
status.setText("Wrong usename or password");
} catch(Exception e) {
;} finally {
try {
if(con != null)
con.close();
} catch(SQLException e) {}
}
}
else
{
try {
kkSocket = new Socket("localhost", 4444);
out = new PrintWriter(kkSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(kkSocket.getInputStream()));
} catch (UnknownHostException e) {


} catch (IOException e) {


}
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String fromServer;
String fromUser=chatField.getText();;
while ((fromServer = in.readLine()) != null) {
chatarea.append(fromServer);
fromUser = stdIn.readLine();
if (fromUser != null)
out.println(fromUser);
}


out.close();
in.close();
stdIn.close();
kkSocket.close();


}
}



public String getAppletInfo() {
return "Chat client by Himanshu Sharma";
}
}

Edited by happygeek: fixed formatting

2
Contributors
1
Reply
2
Views
9 Years
Discussion Span
Last Post by masijade
0

No. You cannot directly access sockets from an applet. (At least not without changing the security policies on the machine running the applet.) Maybe if it is a signed applet, but I don't believe that even a signed applet is allowed access to sockets. (At least not without changing the security policies, again.)

This topic has been dead for over six months. 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.