Can anybody tell me the problem with this code when compiled in jdk1.4

Can anybody help me find out the error in this code.
Try to drag a file from your desktop and drop it on the first textpane on my GUI. Then try to drag another file. This time the dragdrop event handler throws a null pointer exception. This happened when I compiled the code with jdk1.4. With jdk1.3 it is working fine. Actually, I need jdk1.4 to get the systemicons for the files I drop on my desktop.
/* Client.java*/
import java.util.Vector;
import java.util.Enumeration;
import java.util.Arrays;
import java.awt.*;
import java.awt.event.*;
import java.rmi.*;
import java.rmi.server.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.filechooser.*;
import java.io.*;
import java.awt.dnd.*;
import java.awt.datatransfer.*;
import java.util.Iterator;
import javax.swing.plaf.*;
import javax.swing.plaf.basic.*;
import java.util.Hashtable;
import javax.swing.text.*;
import javax.swing.event.*;
public class Client extends JFrame{
static String newline = System.getProperty("line.separator");
static Client client;
     //ServerInterface server;
     //ClientProperties clp;
     Vector v1=new Vector();
     ByteArrayOutputStream out;
     Runtime r1;
     //file objects,together with array of bytes
     Hashtable files=new Hashtable(); //files sent
     Hashtable rfiles=new Hashtable(); //files received
     //file objects,together with button handlers
     Hashtable hfiles=new Hashtable(); //files sent,files received
     JButton button1=new JButton();
     JButton button2=new JButton();
     JButton button3=new JButton();
     JLabel label1=new JLabel();
     JLabel label2=new JLabel();
     JLabel label3=new JLabel();
     JLabel label4=new JLabel();
     JLabel label5=new JLabel();
     JLabel label6=new JLabel();
     JLabel label7=new JLabel();
     JLabel label8=new JLabel();
     JOptionPane dialog=new JOptionPane();
     JFileChooser chooser = new JFileChooser();
     JPanel panel1;
     JPanel panel2;
     DropTarget dtarget;
     DragSource dsource;
     JTextPane textArea1=new JTextPane();
     TextArea textArea2=new TextArea();
     JTextPane textpanel=new JTextPane();
     Style defstyle,style;
     StyledDocument doc,doc1;
     JPopupMenu popup;
     JTree tree;
     JScrollPane jsppane;
     JScrollPane jsp,jsp2;
     DefaultMutableTreeNode top;
     Container cp;
     private String toalias;
     private String togroup;
private String fromalias;
     private String fromgroup;     
     private boolean CONNECT;
     public Client()
     cp=getContentPane();
     cp.setLayout(null);
          setForeground(java.awt.Color.red);
          setFont(new Font("Dialog", Font.PLAIN, 14));
          setVisible(false);
          label1.setText(" CHAT APPLICATION");
          cp.add(label1);
          label1.setFont(new Font("Dialog", Font.BOLD, 16));
          label1.setBounds(72,20,319,30);
          label2.setText("List of Users Connected.");
          cp.add(label2);
          label2.setForeground(java.awt.Color.blue);
          label2.setFont(new Font("Dialog", Font.BOLD, 12));
          label2.setBounds(24,60,192,26);
          label8.setBounds(280,60,100,26);
          cp.add(label8);
          cp.add(textArea2);
          textArea2.setBounds(204,120,268,90);
          jsppane=new JScrollPane(textArea1);
          doc1=textArea1.getStyledDocument();
          jsppane.setBounds(12,264,456,109);
          cp.add(jsppane);
          label3.setText("TO::");
          cp.add(label3);
          label3.setFont(new Font("Dialog", Font.BOLD, 12));
          label3.setBounds(12,228,36,20);
          cp.add(label4);
          label4.setBackground(java.awt.Color.lightGray);
          label4.setBounds(60,228,172,19);
          label5.setText("SERVER RESPONSE");
          cp.add(label5);
          label5.setFont(new Font("Dialog", Font.BOLD, 12));
          label5.setBounds(204,96,204,21);
          label7.setText("MESSAGE FOR YOU.");
          cp.add(label7);
          label7.setFont(new Font("Dialog", Font.BOLD, 14));
     label7.setBounds(12,371,288,25);
     jsp2=new JScrollPane(textpanel);
     setTextPaneStyle();
jsp2.setBounds(12,401,456,109);
cp.add(jsp2);
button1.setLabel("Send");
          button1.setEnabled(false);
          cp.add(button1);
          button1.setBackground(java.awt.Color.lightGray);
          button1.setForeground(java.awt.Color.black);
          button1.setFont(new Font("Dialog", Font.BOLD|Font.ITALIC, 10));
          button1.setBounds(60,520,78,36);
          button2.setLabel("Attach");
          //button2.setEnabled(false);
          cp.add(button2);
          button2.setBackground(java.awt.Color.lightGray);
          button2.setForeground(java.awt.Color.black);
          button2.setFont(new Font("Dialog", Font.BOLD|Font.ITALIC, 10));
          button2.setBounds(180,520,72,36);
          button3.setLabel("Connect");
          cp.add(button3);
          button3.setBackground(java.awt.Color.lightGray);
          button3.setForeground(java.awt.Color.black);
          button3.setFont(new Font("Dialog", Font.BOLD|Font.ITALIC, 10));
          button3.setBounds(288,520,72,33);
          setSize(500,620);
     show();
     addWindowListener(new WindowEventHandler());
     button1.addActionListener(new ButtonHandler());     
     button2.addActionListener(new ButtonHandler());     
     button3.addActionListener(new ButtonHandler());
     textArea1.addContainerListener(new ComponentHandler());     
     dtarget=new DropTarget(textArea1,new DragDropHandler());
     textArea2.setEnabled(false);
     textpanel.setEnabled(false);
     r1=Runtime.getRuntime();
     r1.addShutdownHook(new onshutdown());
     addMenu();
     cp.repaint();
     //adds attachments to the textArea1     
     synchronized private void addAttach(java.util.List fileList)
     Iterator iterator=fileList.iterator();
     JButton bw;
     while(iterator.hasNext())
          File file=(File)iterator.next();
          Icon icon=chooser.getIcon(file);
          bw=new JButton(icon);
          bw.setBackground(java.awt.Color.gray);
          bw.setToolTipText(file.getAbsolutePath());
          bw.addMouseListener(new AttachmentHandler());
          Dimension d1=new Dimension(icon.getIconWidth(),icon.getIconHeight());
          bw.setMaximumSize(d1);
          hfiles.put(bw,file);          
          textArea1.insertComponent(bw);
          textArea1.setCaretPosition(doc1.getLength());
          bw.setSize(icon.getIconWidth(),icon.getIconHeight());
          //only one file at a time
          break;
     cp.repaint();
public void setAudioStream(ByteArrayOutputStream out)
this.out=out;               
private void addMenu()
     JMenuBar mbar=new JMenuBar();
     mbar.setVisible(true);
     mbar.setBounds(0,0,500,20);
     mbar.setBackground(java.awt.Color.gray);
     //first menu
     JMenu m1=new JMenu("Connection");
     m1.setBounds(0,0,80,20);
     m1.setBackground(java.awt.Color.gray);
     JMenuItem mitem1=new JMenuItem("Connect");
     JMenuItem mitem2=new JMenuItem("Disconnect");
     m1.add(mitem1);
     m1.add(mitem2);
     mitem1.addActionListener(new ButtonHandler());
     mitem2.addActionListener(new ButtonHandler());
     mbar.add(m1);
     //second menu
     JMenu m2=new JMenu("Send...");
     m2.setBounds(90,0,80,20);
     m2.setBackground(java.awt.Color.gray);
     JMenuItem mitem3=new JMenuItem("Send");
     JMenuItem mitem4=new JMenuItem("Send with Audio...");
     mitem3.addActionListener(new ButtonHandler());
     mitem4.addActionListener(new ButtonHandler());
     m2.add(mitem3);
     m2.add(mitem4);
     mbar.add(m2);
     cp.add(mbar);
private void setTextPaneStyle()
StyleContext stylecontext =StyleContext.getDefaultStyleContext();
defstyle=stylecontext.getStyle(StyleContext.DEFAULT_STYLE);
doc= textpanel.getStyledDocument();
//style 1
style= textpanel.addStyle("bold",defstyle);
StyleConstants.setBackground(style,Color.white);
StyleConstants.setForeground(style,Color.blue);
StyleConstants.setItalic(style, false);
StyleConstants.setBold(style, true);
StyleConstants.setFontSize(style,16);
//style 2
style= textpanel.addStyle("normal",defstyle);
StyleConstants.setBackground(style,Color.white);
StyleConstants.setForeground(style,Color.black);
StyleConstants.setItalic(style, false);
StyleConstants.setBold(style, false);
StyleConstants.setFontSize(style,14);      
//style3
style= textpanel.addStyle("attach",defstyle);
StyleConstants.setBackground(style,Color.white);
StyleConstants.setForeground(style,Color.red);
StyleConstants.setItalic(style, true);
StyleConstants.setBold(style, false);
StyleConstants.setFontSize(style,12);      
//remote method called by server
public void addClient(String alias,String group,JTree tree)
     //if old client remove old tree
     if(!alias.equals(""))
     cp.remove(this.jsp);
     //add new tree
     this.tree=tree;
     setTreeModel();
     getSound(2);
     if(!alias.equals(""))
     textArea2.append("\nNew Client:" + alias + "has joined");
     else
     textArea2.append("\nYou have been connected to the Server.");
     jsp=new JScrollPane(this.tree);
jsp.setBounds(12,96,168,120);
     jsp.setBackground(java.awt.Color.lightGray);
cp.add(jsp);
this.tree.addMouseListener(new MouseHandler());
//remote method called by server
public void sendMessage(String str,Hashtable rfiles,String alias,String group) throws RemoteException
          receiveMessage(str,rfiles,alias,group);
//remote method called by server
public void removeClient(JTree tree,String alias,String group) throws RemoteException
cp.remove(this.jsp);
this.tree=tree;
setTreeModel();
getSound(3);
jsp=new JScrollPane(this.tree);
jsp.setBounds(12,96,168,120);
     jsp.setBackground(java.awt.Color.lightGray);
cp.add(jsp);
this.tree.addMouseListener(new MouseHandler());
textArea2.append("\nClient:" + alias + "has disconnected");                          
private void receiveMessage(String str,Hashtable rfiles,String alias,String group)
          boolean flag=true;
          UIManager.put("JFrame.activeTitleBackground", new Color(64,128,255));
UIManager.put("JFrame.activeTitleForeground", Color.white);
UIManager.put("JFrame.inactiveTitleBackground", new Color(128,128,128));
UIManager.put("JFrame.inactiveTitleForeground", Color.black);
SwingUtilities.updateComponentTreeUI(this);
          try{
          if(alias.equals(""))
     doc.insertString(doc.getLength(),"CHATMASTER>>",textpanel.getStyle("bold"));
          doc.insertString(doc.getLength(),str+ newline,textpanel.getStyle("normal"));
          else
          doc.insertString(doc.getLength(),alias + "@" + group + ">>",textpanel.getStyle("bold"));
          doc.insertString(doc.getLength(),str,textpanel.getStyle("normal"));
          //add files to textpanel
          if(rfiles!=null && rfiles.size()>0)
          doc.insertString(doc.getLength(),newline+"Attachments>>",textpanel.getStyle("attach"));
          showattach(rfiles);
          addtoList(rfiles);     
doc.insertString(doc.getLength(),newline,textpanel.getStyle("normal"));
catch(Exception e)
          e.printStackTrace();
          dialog.showMessageDialog(client,e.toString(),"Error:ChatApplication",JOptionPane.ERROR_MESSAGE);
     cp.repaint();               
protected boolean ContactServer(String alias,String servername,String group)
     try{
          //UnicastRemoteObject.exportObject(this);
          //server=(ServerInterface)Naming.lookup("//gpt02d05:5500/" + servername);
     //     server.notifyMe(this,alias,group);
          //change the settings of buttons
          button1.setEnabled(true);
          button2.setEnabled(true);
          button3.setLabel("Disconnect");
          label8.setVisible(true);
          label8.setText(" Welcome::" + alias);
          //putting values of alias and group for sending messages
          fromalias=alias;
          fromgroup=group;
          CONNECT=true;
          return true;
     catch(UnsupportedOperationException e)
     dialog.showMessageDialog(client,"Client with the Same Alias in " + group + " already exists","Error:ChatApplication",JOptionPane.ERROR_MESSAGE);                                   
     try{
          //     UnicastRemoteObject.unexportObject(client,true);
          catch(Exception ev){System.out.println(ev.toString());}     
     catch(Exception e)
          dialog.showMessageDialog(client,"Unable to connect to Server","Error:ChatApplication",JOptionPane.ERROR_MESSAGE);
          try{
          //     UnicastRemoteObject.unexportObject(client,true);
          catch(Exception ev){System.out.println(ev.toString());}     
     return false;      
public static void main(String args[]) throws RemoteException{
     client=new Client();          
}//main ends
public void getSound(int count)
     Toolkit t1=getToolkit();
          for(int i=0;i<count;i++)
          t1.beep();
          try{
               Thread.sleep(500);
          catch(Exception e){}
public void setTreeModel()
ImageIcon i1=new ImageIcon("Lock.gif","No Users");
ImageIcon i2=new ImageIcon("Connec.gif","Users in Group");
ImageIcon i3=new ImageIcon("authorbn.gif","An User");
DefaultTreeCellRenderer dr1= new DefaultTreeCellRenderer();
dr1.setClosedIcon(i1);
dr1.setOpenIcon(i2);
dr1.setLeafIcon(i3);
dr1.setTextSelectionColor(java.awt.Color.red);
tree.setCellRenderer(dr1);
//add received files to the list
private void addtoList(Hashtable rfiles)
Enumeration filelist=rfiles.keys();          
while(filelist.hasMoreElements())          
File file=(File)filelist.nextElement();
this.rfiles.put(file,rfiles.get(file));               
//show the attachments received               
private void showattach(Hashtable rfiles)
Enumeration filelist=rfiles.keys();
dsource=DragSource.getDefaultDragSource();
JButton b1=null;
while(filelist.hasMoreElements())
     File file=(File)filelist.nextElement();
     Icon icon=chooser.getIcon(file);
     b1=new JButton(icon);
     b1.setBackground(java.awt.Color.gray);
b1.setToolTipText(file.getName());
b1.addMouseListener(new AttachmentHandler());
Dimension d1=new Dimension(icon.getIconWidth(),icon.getIconHeight());
b1.setMaximumSize(d1);
hfiles.put(b1,file);
textpanel.setCaretPosition(doc.getLength());
textpanel.insertComponent(b1);
b1.setSize(icon.getIconWidth(),icon.getIconHeight());
dsource.createDefaultDragGestureRecognizer(b1, DnDConstants.ACTION_COPY_OR_MOVE,new DragGestureHandler());           
cp.repaint();
private void savefile(File file,Object parent)
//ExtensionFileFilter filter = new ExtensionFileFilter(false);
//filter.addExtension("txt",true);
//chooser.setFileFilter(filter);
int returnVal = chooser.showSaveDialog(client);
if(returnVal ==JFileChooser.APPROVE_OPTION)
     try{
     FileOutputStream fstream=new FileOutputStream(chooser.getSelectedFile());
     //decide whether the file received or sent is to be saved
     if(((Container)parent).equals(textArea1))
     fstream.write((byte[])files.get(file));
     else
     fstream.write((byte[])rfiles.get(file));
     fstream.close();
     System.out.println(file.getName());          
     catch(Exception e)
     {System.out.println(e.toString()); }
private void openfile(File file,Object parent)
     File tempfile=null;
     try{
     String fname=file.getName();     
     tempfile=File.createTempFile("temp",fname.substring(fname.lastIndexOf(".")));     
     FileOutputStream fstream=new FileOutputStream(tempfile);
     System.out.println(tempfile.getAbsolutePath());
     //decide whether the file received or sent is to be saved
     if(((Container)parent).equals(textArea1))
     fstream.write((byte[])files.get(file));
     else
     fstream.write((byte[])rfiles.get(file));          
     fstream.close();
catch(Exception e){System.out.println(e.toString());}
try{
     Process p1=r1.exec("cmd /c start " + tempfile.getAbsolutePath());
     p1.waitFor();
catch(Exception e){System.out.println(e.toString());}     
//inner classes
class ComponentHandler implements ContainerListener{
public void componentRemoved(ContainerEvent ev)     
          Container cont=(Container)ev.getChild();
          if(cont.getComponentCount()>0)
          JButton but=(JButton)cont.getComponent(0);
          files.remove((File)hfiles.get(but));
          hfiles.remove(but);
public void componentAdded(ContainerEvent ev){}
class AttachmentHandler extends MouseAdapter{
     public void mouseClicked(MouseEvent ev){
     if(ev.getModifiers()==4)
     Component comp=(Component)ev.getSource();
     File file=(File)hfiles.get(comp);
     popup=new JPopupMenu();
     JMenuItem popopen=new JMenuItem("Open");
     JMenuItem popsave=new JMenuItem("Save As..");
     popup.add(popopen);
     System.out.println(comp.getParent().getParent().getClass().toString());
     popopen.addActionListener(new ButtonHandler(file,comp.getParent().getParent()));
     popup.add(popsave);
     popsave.addActionListener(new ButtonHandler(file,comp.getParent().getParent()));
     popup.show(comp,12,12);
class DragGestureHandler extends Vector implements DragGestureListener,DragSourceListener,Transferable{
final static int FILE = 0;
final static int STRING = 1;
final static int PLAIN = 2;
DataFlavor flavors[] = {DataFlavor.javaFileListFlavor,DataFlavor.stringFlavor,DataFlavor.plainTextFlavor};
public void dragDropEnd(DragSourceDropEvent ev){}
public void dragEnter(DragSourceDragEvent ev){}
public void dragExit(DragSourceEvent ev){}
public void dragOver(DragSourceDragEvent ev){}
public void dropActionChanged(DragSourceDragEvent ev){}
public void dragGestureRecognized(DragGestureEvent ev)     
          System.out.println("recognized");
          File file=(File)hfiles.get(ev.getComponent());
addElement(file);
ev.startDrag(DragSource.DefaultCopyDrop,this,this);
/* Returns the array of flavors in which it can provide the data. */
public synchronized DataFlavor[] getTransferDataFlavors() {
     return flavors;
/* Returns whether the requested flavor is supported by this object. */
public boolean isDataFlavorSupported(DataFlavor flavor) {
boolean b = false;
b |=flavor.equals(flavors[FILE]);
b |= flavor.equals(flavors[STRING]);
b |= flavor.equals(flavors[PLAIN]);
     return (b);
public synchronized Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException,IOException
if(flavor.equals(flavors[FILE])){return this;}
else if (flavor.equals(flavors[PLAIN])) {
     return new StringReader(((File)elementAt(0)).getAbsolutePath());
     } else if (flavor.equals(flavors[STRING])) {
     return((File)elementAt(0)).getAbsolutePath();
     } else {
     throw new UnsupportedFlavorException(flavor);
//inner class for draging in the files on java frame     
class DragDropHandler implements DropTargetListener{
public void dragEnter(DropTargetDragEvent ev){     
public void dragExit(DropTargetEvent ev){
public void dragOver(DropTargetDragEvent ev){
public void drop(DropTargetDropEvent ev){
     Transferable tf1=ev.getTransferable();
     DataFlavor fl[]=ev.getCurrentDataFlavors();
     if(ev.isDataFlavorSupported(DataFlavor.javaFileListFlavor))
     ev.acceptDrop (DnDConstants.ACTION_COPY_OR_MOVE);
     try{
     java.util.List fileList = (java.util.List)tf1.getTransferData(DataFlavor.javaFileListFlavor);
Iterator iterator = fileList.iterator();
while (iterator.hasNext())
File file = (File)iterator.next();
if(file.isFile())
Icon icon=chooser.getIcon(file);
FileInputStream fstream=new FileInputStream(file);
int filedata=(new Double(file.length())).intValue();
byte bytes[]=new byte[filedata];
fstream.read(bytes);
files.put(file,bytes);
ev.getDropTargetContext().dropComplete(true);
addAttach(fileList);
catch(Exception e)
{System.out.println(e.toString() + "here");}
public void dropActionChanged(DropTargetDragEvent ev){
class MouseHandler extends MouseAdapter{
public void mouseClicked(MouseEvent me)
TreePath tp=tree.getPathForLocation(me.getX(),me.getY());
if(tp!=null)
     if(tp.getPathCount()==3)
          toalias=tp.getPathComponent(2).toString();
          togroup=tp.getPathComponent(1).toString();
          System.out.println(toalias);
          if (!(toalias.equals(fromalias) && togroup.equals(fromgroup)))
          System.out.println("hh " + toalias);
          label4.setText(tp.getPathComponent(2).toString() + "_@" + tp.getPathComponent(1).toString());           
class ButtonHandler implements ActionListener{
     private File file;
     private Object parent;
     //constructors
     public ButtonHandler()
     public ButtonHandler(File file,Object parent)
          this.file=file;
          this.parent=parent;
     //other functions      
     public void actionPerformed(ActionEvent ev){
          String s=ev.getActionCommand();
     System.out.println(s);
          if(s.equals("Send with Audio..."))
          //Audio audio=new Audio(client,false,"CAPTURE");          
          if(s.equals("Disconnect"))
          try{
          // server.disconnect(client);
          client.getSound(3);
          cp.remove(jsp);
          label6.setVisible(false);
          //UnicastRemoteObject.unexportObject(client,true);
          button3.setLabel("Connect");
          textArea2.append("\nYou have been disconnected to Server");
          client.repaint();     
          catch(Exception e)
          System.out.println(e.toString());
          if(s.equals("Connect"))
     //     clp=new ClientProperties(client,false);
     if(s.equals("Save As.."))
     savefile(file,parent);     
     if(s.equals("Open"))
     openfile(file,parent);
          if(s.equals("Attach"))
          //ExtensionFileFilter filter = new ExtensionFileFilter(false);
          //filter.addExtension(".txt",true);
          //filter.setDescription("Text Files(.txt)");
          // chooser.setFileFilter(filter);
          chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
          //chooser.setMultiSelectionEnabled(true);
          int returnVal = chooser.showOpenDialog(client);
          if(returnVal ==JFileChooser.APPROVE_OPTION)
          //File fp[]=chooser.getSelectedFiles();
          File fp[]=new File[1];
          fp[0]=chooser.getSelectedFile();
          int i=0;
          while(i<fp.length)
          try{
          File file=fp;
          Icon icon=chooser.getIcon(file);
FileInputStream fstream=new FileInputStream(file);
int filedata=(new Double(file.length())).intValue();
byte bytes[]=new byte[filedata];
fstream.read(bytes);
files.put(file,bytes);
catch(Exception e){dialog.showMessageDialog(client,e.toString(),"Error:ChatApplication",JOptionPane.ERROR_MESSAGE);
return; }
i++;
          java.util.List fileList=Arrays.asList(fp);
          addAttach(fileList);
          if(s.equals("Send"))
          try{
               if(toalias==null)
               dialog.showMessageDialog(client,"Select the Recepient First!!","Error:ChatApplication",JOptionPane.ERROR_MESSAGE);
               return;
               if(toalias!=null && togroup!=null && (!toalias.equals(fromalias)))
               // server.sendMessage(textArea1.getText(),files,toalias,togroup,fromalias,fromgroup);
               textArea1.setText("");
          catch(Exception e)
     e.printStackTrace();
}//if ends
class WindowEventHandler extends WindowAdapter{
     public void windowClosing(WindowEvent ev){
          try{
          //server.disconnect(client);
          client.getSound(3);
     //     UnicastRemoteObject.unexportObject(client,true);
          catch(Exception e){System.out.println(e.toString());}
          dispose();
private class onshutdown extends Thread{
public void run(){
     try{
          //server.disconnect(client);
          //UnicastRemoteObject.unexportObject(client,true);
          catch(Exception e){}      
}//run ends          

Here is the working code :
There was an error line 724
File file=fp; -> File file=fp[0];
Several method were deprecated and try to replace the deprecated static field : DataFlavor.plainTextFlavor which was deprecated since 1.4.
/* Client.java*/
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.rmi.*;
import java.rmi.server.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.filechooser.*;
import java.io.*;
import java.awt.dnd.*;
import java.awt.datatransfer.*;
import javax.swing.plaf.*;
import javax.swing.plaf.basic.*;
import javax.swing.text.*;
import javax.swing.event.*;
public class Client extends JFrame{
static String newline = System.getProperty("line.separator");
static Client client;
//ServerInterface server;
//ClientProperties clp;
Vector v1=new Vector();
ByteArrayOutputStream out;
Runtime r1;
//file objects,together with array of bytes
Hashtable files=new Hashtable(); //files sent
Hashtable rfiles=new Hashtable(); //files received
//file objects,together with button handlers
Hashtable hfiles=new Hashtable(); //files sent,files received
JButton button1=new JButton();
JButton button2=new JButton();
JButton button3=new JButton();
JLabel label1=new JLabel();
JLabel label2=new JLabel();
JLabel label3=new JLabel();
JLabel label4=new JLabel();
JLabel label5=new JLabel();
JLabel label6=new JLabel();
JLabel label7=new JLabel();
JLabel label8=new JLabel();
JOptionPane dialog=new JOptionPane();
JFileChooser chooser = new JFileChooser();
JPanel panel1;
JPanel panel2;
DropTarget dtarget;
DragSource dsource;
JTextPane textArea1=new JTextPane();
TextArea textArea2=new TextArea();
JTextPane textpanel=new JTextPane();
Style defstyle,style;
StyledDocument doc,doc1;
JPopupMenu popup;
JTree tree;
JScrollPane jsppane;
JScrollPane jsp,jsp2;
DefaultMutableTreeNode top;
Container cp;
private String toalias;
private String togroup;
private String fromalias;
private String fromgroup;
private boolean CONNECT;
public Client()
cp=getContentPane();
cp.setLayout(null);
setForeground(java.awt.Color.red);
setFont(new Font("Dialog", Font.PLAIN, 14));
setVisible(false);
label1.setText(" CHAT APPLICATION");
cp.add(label1);
label1.setFont(new Font("Dialog", Font.BOLD, 16));
label1.setBounds(72,20,319,30);
label2.setText("List of Users Connected.");
cp.add(label2);
label2.setForeground(java.awt.Color.blue);
label2.setFont(new Font("Dialog", Font.BOLD, 12));
label2.setBounds(24,60,192,26);
label8.setBounds(280,60,100,26);
cp.add(label8);
cp.add(textArea2);
textArea2.setBounds(204,120,268,90);
jsppane=new JScrollPane(textArea1);
doc1=textArea1.getStyledDocument();
jsppane.setBounds(12,264,456,109);
cp.add(jsppane);
label3.setText("TO::");
cp.add(label3);
label3.setFont(new Font("Dialog", Font.BOLD, 12));
label3.setBounds(12,228,36,20);
cp.add(label4);
label4.setBackground(java.awt.Color.lightGray);
label4.setBounds(60,228,172,19);
label5.setText("SERVER RESPONSE");
cp.add(label5);
label5.setFont(new Font("Dialog", Font.BOLD, 12));
label5.setBounds(204,96,204,21);
label7.setText("MESSAGE FOR YOU.");
cp.add(label7);
label7.setFont(new Font("Dialog", Font.BOLD, 14));
label7.setBounds(12,371,288,25);
jsp2=new JScrollPane(textpanel);
setTextPaneStyle();
jsp2.setBounds(12,401,456,109);
cp.add(jsp2);
button1.setText("Send");
button1.setEnabled(false);
cp.add(button1);
button1.setBackground(java.awt.Color.lightGray);
button1.setForeground(java.awt.Color.black);
button1.setFont(new Font("Dialog", Font.BOLD|Font.ITALIC, 10));
button1.setBounds(60,520,78,36);
button2.setText("Attach");
//button2.setEnabled(false);
cp.add(button2);
button2.setBackground(java.awt.Color.lightGray);
button2.setForeground(java.awt.Color.black);
button2.setFont(new Font("Dialog", Font.BOLD|Font.ITALIC, 10));
button2.setBounds(180,520,72,36);
button3.setText("Connect");
cp.add(button3);
button3.setBackground(java.awt.Color.lightGray);
button3.setForeground(java.awt.Color.black);
button3.setFont(new Font("Dialog", Font.BOLD|Font.ITALIC, 10));
button3.setBounds(288,520,72,33);
setSize(500,620);
show();
addWindowListener(new WindowEventHandler());
button1.addActionListener(new ButtonHandler());
button2.addActionListener(new ButtonHandler());
button3.addActionListener(new ButtonHandler());
textArea1.addContainerListener(new ComponentHandler());
dtarget=new DropTarget(textArea1,new DragDropHandler());
textArea2.setEnabled(false);
textpanel.setEnabled(false);
r1=Runtime.getRuntime();
r1.addShutdownHook(new onshutdown());
addMenu();
cp.repaint();
//adds attachments to the textArea1
synchronized private void addAttach(java.util.List fileList)
Iterator iterator=fileList.iterator();
JButton bw;
while(iterator.hasNext())
File file=(File)iterator.next();
Icon icon=chooser.getIcon(file);
bw=new JButton(icon);
bw.setBackground(java.awt.Color.gray);
bw.setToolTipText(file.getAbsolutePath());
bw.addMouseListener(new AttachmentHandler());
Dimension d1=new Dimension(icon.getIconWidth(),icon.getIconHeight());
bw.setMaximumSize(d1);
hfiles.put(bw,file);
textArea1.insertComponent(bw);
textArea1.setCaretPosition(doc1.getLength());
bw.setSize(icon.getIconWidth(),icon.getIconHeight());
//only one file at a time
break;
cp.repaint();
public void setAudioStream(ByteArrayOutputStream out)
this.out=out;
private void addMenu()
JMenuBar mbar=new JMenuBar();
mbar.setVisible(true);
mbar.setBounds(0,0,500,20);
mbar.setBackground(java.awt.Color.gray);
//first menu
JMenu m1=new JMenu("Connection");
m1.setBounds(0,0,80,20);
m1.setBackground(java.awt.Color.gray);
JMenuItem mitem1=new JMenuItem("Connect");
JMenuItem mitem2=new JMenuItem("Disconnect");
m1.add(mitem1);
m1.add(mitem2);
mitem1.addActionListener(new ButtonHandler());
mitem2.addActionListener(new ButtonHandler());
mbar.add(m1);
//second menu
JMenu m2=new JMenu("Send...");
m2.setBounds(90,0,80,20);
m2.setBackground(java.awt.Color.gray);
JMenuItem mitem3=new JMenuItem("Send");
JMenuItem mitem4=new JMenuItem("Send with Audio...");
mitem3.addActionListener(new ButtonHandler());
mitem4.addActionListener(new ButtonHandler());
m2.add(mitem3);
m2.add(mitem4);
mbar.add(m2);
cp.add(mbar);
private void setTextPaneStyle()
StyleContext stylecontext =StyleContext.getDefaultStyleContext();
defstyle=stylecontext.getStyle(StyleContext.DEFAULT_STYLE);
doc= textpanel.getStyledDocument();
//style 1
style= textpanel.addStyle("bold",defstyle);
StyleConstants.setBackground(style,Color.white);
StyleConstants.setForeground(style,Color.blue);
StyleConstants.setItalic(style, false);
StyleConstants.setBold(style, true);
StyleConstants.setFontSize(style,16);
//style 2
style= textpanel.addStyle("normal",defstyle);
StyleConstants.setBackground(style,Color.white);
StyleConstants.setForeground(style,Color.black);
StyleConstants.setItalic(style, false);
StyleConstants.setBold(style, false);
StyleConstants.setFontSize(style,14);
//style3
style= textpanel.addStyle("attach",defstyle);
StyleConstants.setBackground(style,Color.white);
StyleConstants.setForeground(style,Color.red);
StyleConstants.setItalic(style, true);
StyleConstants.setBold(style, false);
StyleConstants.setFontSize(style,12);
//remote method called by server
public void addClient(String alias,String group,JTree tree)
//if old client remove old tree
if(!alias.equals(""))
cp.remove(this.jsp);
//add new tree
this.tree=tree;
setTreeModel();
getSound(2);
if(!alias.equals(""))
textArea2.append("\nNew Client:" + alias + "has joined");
else
textArea2.append("\nYou have been connected to the Server.");
jsp=new JScrollPane(this.tree);
jsp.setBounds(12,96,168,120);
jsp.setBackground(java.awt.Color.lightGray);
cp.add(jsp);
this.tree.addMouseListener(new MouseHandler());
//remote method called by server
public void sendMessage(String str,Hashtable rfiles,String alias,String group) throws RemoteException
receiveMessage(str,rfiles,alias,group);
//remote method called by server
public void removeClient(JTree tree,String alias,String group) throws RemoteException
cp.remove(this.jsp);
this.tree=tree;
setTreeModel();
getSound(3);
jsp=new JScrollPane(this.tree);
jsp.setBounds(12,96,168,120);
jsp.setBackground(java.awt.Color.lightGray);
cp.add(jsp);
this.tree.addMouseListener(new MouseHandler());
textArea2.append("\nClient:" + alias + "has disconnected");
private void receiveMessage(String str,Hashtable rfiles,String alias,String group)
boolean flag=true;
UIManager.put("JFrame.activeTitleBackground", new Color(64,128,255));
UIManager.put("JFrame.activeTitleForeground", Color.white);
UIManager.put("JFrame.inactiveTitleBackground", new Color(128,128,128));
UIManager.put("JFrame.inactiveTitleForeground", Color.black);
SwingUtilities.updateComponentTreeUI(this);
try{
if(alias.equals(""))
doc.insertString(doc.getLength(),"CHATMASTER>>",textpanel.getStyle("bold"));
doc.insertString(doc.getLength(),str+ newline,textpanel.getStyle("normal"));
else
doc.insertString(doc.getLength(),alias + "@" + group + ">>",textpanel.getStyle("bold"));
doc.insertString(doc.getLength(),str,textpanel.getStyle("normal"));
//add files to textpanel
if(rfiles!=null && rfiles.size()>0)
doc.insertString(doc.getLength(),newline+"Attachments>>",textpanel.getStyle("attach"));
showattach(rfiles);
addtoList(rfiles);
doc.insertString(doc.getLength(),newline,textpanel.getStyle("normal"));
catch(Exception e)
e.printStackTrace();
dialog.showMessageDialog(client,e.toString(),"Error:ChatApplication",JOptionPane.ERROR_MESSAGE);
cp.repaint();
protected boolean ContactServer(String alias,String servername,String group)
try{
//UnicastRemoteObject.exportObject(this);
//server=(ServerInterface)Naming.lookup("//gpt02d05:5500/" + servername);
// server.notifyMe(this,alias,group);
//change the settings of buttons
button1.setEnabled(true);
button2.setEnabled(true);
button3.setText("Disconnect");
label8.setVisible(true);
label8.setText(" Welcome::" + alias);
//putting values of alias and group for sending messages
fromalias=alias;
fromgroup=group;
CONNECT=true;
return true;
catch(UnsupportedOperationException e)
dialog.showMessageDialog(client,"Client with the Same Alias in " + group + " already exists","Error:ChatApplication",JOptionPane.ERROR_MESSAGE);
try{
// UnicastRemoteObject.unexportObject(client,true);
catch(Exception ev){System.out.println(ev.toString());}
catch(Exception e)
dialog.showMessageDialog(client,"Unable to connect to Server","Error:ChatApplication",JOptionPane.ERROR_MESSAGE);
try{
// UnicastRemoteObject.unexportObject(client,true);
catch(Exception ev){System.out.println(ev.toString());}
return false;
public static void main(String args[]) throws RemoteException{
client=new Client();
}//main ends
public void getSound(int count)
Toolkit t1=getToolkit();
for(int i=0;i<count;i++)
t1.beep();
try{
Thread.sleep(500);
catch(Exception e){}
public void setTreeModel()
ImageIcon i1=new ImageIcon("Lock.gif","No Users");
ImageIcon i2=new ImageIcon("Connec.gif","Users in Group");
ImageIcon i3=new ImageIcon("authorbn.gif","An User");
DefaultTreeCellRenderer dr1= new DefaultTreeCellRenderer();
dr1.setClosedIcon(i1);
dr1.setOpenIcon(i2);
dr1.setLeafIcon(i3);
dr1.setTextSelectionColor(java.awt.Color.red);
tree.setCellRenderer(dr1);
//add received files to the list
private void addtoList(Hashtable rfiles)
Enumeration filelist=rfiles.keys();
while(filelist.hasMoreElements())
File file=(File)filelist.nextElement();
this.rfiles.put(file,rfiles.get(file));
//show the attachments received
private void showattach(Hashtable rfiles)
Enumeration filelist=rfiles.keys();
dsource=DragSource.getDefaultDragSource();
JButton b1=null;
while(filelist.hasMoreElements())
File file=(File)filelist.nextElement();
Icon icon=chooser.getIcon(file);
b1=new JButton(icon);
b1.setBackground(java.awt.Color.gray);
b1.setToolTipText(file.getName());
b1.addMouseListener(new AttachmentHandler());
Dimension d1=new Dimension(icon.getIconWidth(),icon.getIconHeight());
b1.setMaximumSize(d1);
hfiles.put(b1,file);
textpanel.setCaretPosition(doc.getLength());
textpanel.insertComponent(b1);
b1.setSize(icon.getIconWidth(),icon.getIconHeight());
dsource.createDefaultDragGestureRecognizer(b1, DnDConstants.ACTION_COPY_OR_MOVE,new DragGestureHandler());
cp.repaint();
private void savefile(File file,Object parent)
//ExtensionFileFilter filter = new ExtensionFileFilter(false);
//filter.addExtension("txt",true);
//chooser.setFileFilter(filter);
int returnVal = chooser.showSaveDialog(client);
if(returnVal ==JFileChooser.APPROVE_OPTION)
try{
FileOutputStream fstream=new FileOutputStream(chooser.getSelectedFile());
//decide whether the file received or sent is to be saved
if(((Container)parent).equals(textArea1))
fstream.write((byte[])files.get(file));
else
fstream.write((byte[])rfiles.get(file));
fstream.close();
System.out.println(file.getName());
catch(Exception e)
{System.out.println(e.toString()); }
private void openfile(File file,Object parent)
File tempfile=null;
try{
String fname=file.getName();
tempfile=File.createTempFile("temp",fname.substring(fname.lastIndexOf(".")));
FileOutputStream fstream=new FileOutputStream(tempfile);
System.out.println(tempfile.getAbsolutePath());
//decide whether the file received or sent is to be saved
if(((Container)parent).equals(textArea1))
fstream.write((byte[])files.get(file));
else
fstream.write((byte[])rfiles.get(file));
fstream.close();
catch(Exception e){System.out.println(e.toString());}
try{
Process p1=r1.exec("cmd /c start " + tempfile.getAbsolutePath());
p1.waitFor();
catch(Exception e){System.out.println(e.toString());}
//inner classes
class ComponentHandler implements ContainerListener{
public void componentRemoved(ContainerEvent ev)
Container cont=(Container)ev.getChild();
if(cont.getComponentCount()>0)
JButton but=(JButton)cont.getComponent(0);
files.remove((File)hfiles.get(but));
hfiles.remove(but);
public void componentAdded(ContainerEvent ev){}
class AttachmentHandler extends MouseAdapter{
public void mouseClicked(MouseEvent ev){
if(ev.getModifiers()==4)
Component comp=(Component)ev.getSource();
File file=(File)hfiles.get(comp);
popup=new JPopupMenu();
JMenuItem popopen=new JMenuItem("Open");
JMenuItem popsave=new JMenuItem("Save As..");
popup.add(popopen);
System.out.println(comp.getParent().getParent().getClass().toString());
popopen.addActionListener(new ButtonHandler(file,comp.getParent().getParent()));
popup.add(popsave);
popsave.addActionListener(new ButtonHandler(file,comp.getParent().getParent()));
popup.show(comp,12,12);
class DragGestureHandler extends Vector implements DragGestureListener,DragSourceListener,Transferable{
final static int FILE = 0;
final static int STRING = 1;
final static int PLAIN = 2;
DataFlavor flavors[] = {DataFlavor.javaFileListFlavor,DataFlavor.stringFlavor,DataFlavor.plainTextFlavor};
public void dragDropEnd(DragSourceDropEvent ev){}
public void dragEnter(DragSourceDragEvent ev){}
public void dragExit(DragSourceEvent ev){}
public void dragOver(DragSourceDragEvent ev){}
public void dropActionChanged(DragSourceDragEvent ev){}
public void dragGestureRecognized(DragGestureEvent ev)
System.out.println("recognized");
File file=(File)hfiles.get(ev.getComponent());
addElement(file);
ev.startDrag(DragSource.DefaultCopyDrop,this,this);
/* Returns the array of flavors in which it can provide the data. */
public synchronized DataFlavor[] getTransferDataFlavors() {
return flavors;
/* Returns whether the requested flavor is supported by this object. */
public boolean isDataFlavorSupported(DataFlavor flavor) {
boolean b = false;
b |=flavor.equals(flavors[FILE]);
b |= flavor.equals(flavors[STRING]);
b |= flavor.equals(flavors[PLAIN]);
return (b);
public synchronized Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException,IOException
if(flavor.equals(flavors[FILE])){return this;}
else if (flavor.equals(flavors[PLAIN])) {
return new StringReader(((File)elementAt(0)).getAbsolutePath());
} else if (flavor.equals(flavors[STRING])) {
return((File)elementAt(0)).getAbsolutePath();
} else {
throw new UnsupportedFlavorException(flavor);
//inner class for draging in the files on java frame
class DragDropHandler implements DropTargetListener{
public void dragEnter(DropTargetDragEvent ev){
public void dragExit(DropTargetEvent ev){
public void dragOver(DropTargetDragEvent ev){
public void drop(DropTargetDropEvent ev){
Transferable tf1=ev.getTransferable();
DataFlavor fl[]=ev.getCurrentDataFlavors();
if(ev.isDataFlavorSupported(DataFlavor.javaFileListFlavor))
ev.acceptDrop (DnDConstants.ACTION_COPY_OR_MOVE);
try{
java.util.List fileList = (java.util.List)tf1.getTransferData(DataFlavor.javaFileListFlavor);
Iterator iterator = fileList.iterator();
while (iterator.hasNext())
File file = (File)iterator.next();
if(file.isFile())
Icon icon=chooser.getIcon(file);
FileInputStream fstream=new FileInputStream(file);
int filedata=(new Double(file.length())).intValue();
byte bytes[]=new byte[filedata];
fstream.read(bytes);
files.put(file,bytes);
ev.getDropTargetContext().dropComplete(true);
addAttach(fileList);
catch(Exception e)
{System.out.println(e.toString() + "here");}
public void dropActionChanged(DropTargetDragEvent ev){
class MouseHandler extends MouseAdapter{
public void mouseClicked(MouseEvent me)
TreePath tp=tree.getPathForLocation(me.getX(),me.getY());
if(tp!=null)
if(tp.getPathCount()==3)
toalias=tp.getPathComponent(2).toString();
togroup=tp.getPathComponent(1).toString();
System.out.println(toalias);
if (!(toalias.equals(fromalias) && togroup.equals(fromgroup)))
System.out.println("hh " + toalias);
label4.setText(tp.getPathComponent(2).toString() + "_@" + tp.getPathComponent(1).toString());
class ButtonHandler implements ActionListener{
private File file;
private Object parent;
//constructors
public ButtonHandler()
public ButtonHandler(File file,Object parent)
this.file=file;
this.parent=parent;
//other functions
public void actionPerformed(ActionEvent ev){
String s=ev.getActionCommand();
System.out.println(s);
if(s.equals("Send with Audio..."))
//Audio audio=new Audio(client,false,"CAPTURE");
if(s.equals("Disconnect"))
try{
// server.disconnect(client);
client.getSound(3);
cp.remove(jsp);
label6.setVisible(false);
//UnicastRemoteObject.unexportObject(client,true);
button3.setText("Connect");
textArea2.append("\nYou have been disconnected to Server");
client.repaint();
catch(Exception e)
System.out.println(e.toString());
if(s.equals("Connect"))
// clp=new ClientProperties(client,false);
if(s.equals("Save As.."))
savefile(file,parent);
if(s.equals("Open"))
openfile(file,parent);
if(s.equals("Attach"))
//ExtensionFileFilter filter = new ExtensionFileFilter(false);
//filter.addExtension(".txt",true);
//filter.setDescription("Text Files(.txt)");
// chooser.setFileFilter(filter);
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
//chooser.setMultiSelectionEnabled(true);
int returnVal = chooser.showOpenDialog(client);
if(returnVal ==JFileChooser.APPROVE_OPTION)
//File fp[]=chooser.getSelectedFiles();
File fp[]=new File[1];
fp[0]=chooser.getSelectedFile();
int i=0;
while(i<fp.length)
try{
File file=fp[0];
Icon icon=chooser.getIcon(file);
FileInputStream fstream=new FileInputStream(file);
int filedata=(new Double(file.length())).intValue();
byte bytes[]=new byte[filedata];
fstream.read(bytes);
files.put(file,bytes);
catch(Exception e){dialog.showMessageDialog(client,e.toString(),"Error:ChatApplication",JOptionPane.ERROR_MESSAGE);
return; }
i++;
java.util.List fileList=Arrays.asList(fp);
addAttach(fileList);
if(s.equals("Send"))
try{
if(toalias==null)
dialog.showMessageDialog(client,"Select the Recepient First!!","Error:ChatApplication",JOptionPane.ERROR_MESSAGE);
return;
if(toalias!=null && togroup!=null && (!toalias.equals(fromalias)))
// server.sendMessage(textArea1.getText(),files,toalias,togroup,fromalias,fromgroup);
textArea1.setText("");
catch(Exception e)
e.printStackTrace();
}//if ends
class WindowEventHandler extends WindowAdapter{
public void windowClosing(WindowEvent ev){
try{
//server.disconnect(client);
client.getSound(3);
// UnicastRemoteObject.unexportObject(client,true);
catch(Exception e){System.out.println(e.toString());}
dispose();
private class onshutdown extends Thread{
public void run(){
try{
//server.disconnect(client);
//UnicastRemoteObject.unexportObject(client,true);
catch(Exception e){}
}//run ends
I hope this helps,
Denis

Similar Messages

  • Can someone tell me the problem with this (very basic) code

    I know it's very basic but here goes
    public class MilesAndFurlongs
    // the constructor
    public MilesAndFurlongs (int Furlongs, int Miles)
    amountFurlongs = Furlongs;
    amountMiles = Miles;
    // method to add one to furlong
    public void increment()
    amount = (amount + 1);
    // method to print out total number of furlongs and miles
    public void displayLength()
    system.out.println("Furlongs: " + amountFurlongs);
    system.out.println("Miles: " + amountMiles);
    bluej says theres an illegal start of expression in displaylength()
    i know its going to be something stupid :D

    this is all of it updated...
    public class MilesAndFurlongs
    // the constructor
    public MilesAndFurlongs (int Furlongs, int Miles)
    amountFurlongs = Furlongs;
    amountMiles = Miles;
    // method to add one to furlong
    public void increment()
    amount = (amount + 1);
    // method to print out total number of furlongs and miles
    public void displayLength()
    system.out.println("Furlongs: " + amountFurlongs);
    system.out.println("Miles: " + amountMiles);
    Message was edited by:
    jaytabbmeister

  • Please tell me what is the problem with this code

    Hai,
    Iam new to Swings. can any one tell what is the problem with this code. I cant see those controls on the frame. please give me the suggestions.
    I got the frame ,but the controls are not.
    this is the code:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class ex2 extends JFrame
    JButton b1;
    JLabel l1,l2;
    JPanel p1,p2;
    JTextField tf1;
    JPasswordField tf2;
    public ex2()
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setTitle("Another example");
    setSize(500,500);
    setVisible(true);
    b1=new JButton(" ok ");
    p1=new JPanel();
    p1.setLayout(new GridLayout(2,2));
    p2=new JPanel();
    p2.setLayout(new BorderLayout());
    l1=new JLabel("Name :");
    l2=new JLabel("Password:");
    tf1=new JTextField(15);
    tf2=new JPasswordField(15);
    Container con=getContentPane();
    con.add(p1);
    con.add(p2);
    public static void createAndShowGUI()
    ex2.setDefaultLookAndFeelDecorated(true);
    public static void main(String ar[])
    createAndShowGUI();
    new ex2();
    }

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class ex2 extends JFrame
        JButton b1;
        JLabel l1,l2;
        JPanel p1,p2;
        JTextField tf1;
        JPasswordField tf2;
        public ex2()
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            setTitle("Another example");
            b1=new JButton(" ok ");
            p1=new JPanel();
            p1.add(b1);
            p2=new JPanel();
            p2.setLayout(new GridLayout(2,2));
            l1=new JLabel("Name :");
            l2=new JLabel("Password:");
            tf1=new JTextField(15);
            tf2=new JPasswordField(15);
            p2.add(l1);
            p2.add(tf1);
            p2.add(l2);
            p2.add(tf2);
            Container con=getContentPane();
            con.add(p1, BorderLayout.NORTH);
            con.add(p2, BorderLayout.CENTER);
            pack();
            setVisible(true);
        public static void createAndShowGUI()
            ex2.setDefaultLookAndFeelDecorated(true);
        public static void main(String ar[])
            createAndShowGUI();
            new ex2();
    }

  • Vector, what is the problem with this code?

    Vector, what is the problem with this code?
    63  private java.util.Vector data=new Vector();
    64  Vector aaaaa=new Vector();
    65   data.addElement(aaaaa);
    74  aaaaa.addElement(new String("Mary"));on compiling this code, the error is
    TableDemo.java:65: <identifier> expected
                    data.addElement(aaaaa);
                                   ^
    TableDemo.java:74: <identifier> expected
                    aaaaa.addElement(new String("Mary"));
                                    ^
    TableDemo.java:65: package data does not exist
                    data.addElement(aaaaa);
                        ^
    TableDemo.java:74: package aaaaa does not exist
                    aaaaa.addElement(new String("Mary"));Friends i really got fed up with this code for more than half an hour.could anybody spot the problem?

    I can see many:
    1. i assume your code snip is inside a method. a local variable can not be declare private.
    2. if you didn't import java.util.* on top then you need to prefix package on All occurance of Vector.
    3. String in java are constant and has literal syntax. "Mary" is sufficient in most of the time, unless you purposly want to call new String("Mary") on purpose. Read java.lang.String javadoc.
    Here is a sample that would compile...:
    public class QuickMain {
         public static void main(String[] args) {
              java.util.Vector data=new java.util.Vector();
              java.util.Vector aaaaa=new java.util.Vector();
              data.addElement(aaaaa);
              aaaaa.addElement(new String("Mary"));
    }

  • CAN ANYBODY TELL ME WHAT WRONG WITH THIS RSS FEED IT WONT WORK

    CAN ANYBONE TELL ME WHATS WRONG WITH THIS FEED BECAUSE IT WONT WORK AND ALSO HOW DO I GET A LINK TO THE PODCAST RSS FEED FOR THE SUBMIT PODCAST PAGE ON ITUNES,
    ANY HELP WILL BE MUCH APRECIATED
    <?xml version="1.0" encoding="UTF-8"?>
    <rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
    <channel>
    <title>DJ Hybrid Coventry Drum n Bass Podcast</title>
    <link>http://www.djhybridcoventry.com/podcast.htm</link>
    <language>en-us</language>
    <copyright>℗ & © 2007 DJ Hybridb& </copyright>
    <itunes:subtitle>DJ Hybrid Drum n Bass Podcast brings you all the latest and greatest from the Drum n Bass scene, updated every two weeks</itunes:subtitle>
    <itunes:author>DJ Hybrid</itunes:author>
    <itunes:summary>The DJ Hybrid Coventry Drum n Bass Podcast will showcase a selection of the latest and greatest tunes that are getting rinsed on the scene, mixed down with sharp cuts and nasty double drops by Dj Hybrid the podcast will also feature other DJ's and Mc's on different shows. Updated every two weeks this is guarenteed to be an original style of drum n bass mashup, for more info check www.djhybridcoventry.com</itunes:summary>
    <description>DJ Hybrid Drum n Bass Podcast brings you all the latest and greatest from the Drum n Bass scene, updated every two weeks</description>
    <itunes:owner>
    <itunes:name>DJ Hybrid</itunes:name>
    <itunes:email>[email protected]</itunes:email>
    </itunes:owner>
    <itunes:image href="http://i100.photobucket.com/albums/m8/djhybrid/PODCASTLOGOBLUE.jpg" />
    <itunes:category text="Music">
    <itunes:category text="Drum n Bass"/>
    </itunes:category>
    <itunes:category text="music"/>
    <item>
    <title>DJ Hybrid Podcast - 1st Show 03/6/07</title>
    <itunes:author>DJ Hybrid</itunes:author>
    <itunes:subtitle>The first show of the new drum n bass podcast from DJ Hybrid</itunes:subtitle>
    <itunes:summary>Welcome to the 1st show from DJ Hybrid because its the first show im goin to play what tunes i think represent me as a DJ aswell as my favourite drum n bass tunes at the moment for tracklistings check www.djhybridcoventry.com</itunes:summary>
    <enclosure url="http://fs06n5.sendspace.com/dl/603942da730253766c5157920e810d3e/46771dd931 3f824d/v3adp4/DJ%20Hybrid%20Podcast%201%20%20-%20%203rd%20June%202007.mp3" length="8727310" type="audio/x-m4a" />
    <guid>http://fs06n5.sendspace.com/dl/603942da730253766c5157920e810d3e/46771dd9313f824d /v3adp4/DJ%20Hybrid%20Podcast%201%20%20-%20%203rd%20June%202007.mp3</guid>
    <pubDate>Sun, 03 Jun 2007 20:00:00 GMT</pubDate>
    <itunes:duration>53:36</itunes:duration>
    <itunes:keywords>DJ, Hybrid, Podcast, Drum, Bass, Jungle, Coventry, Double Drop, Latest, Tunes, Vinyl, Liquid, Rave, Reggae, Urban</itunes:keywords>
    </item>
    </channel>
    </rss>

    First...Stop screaming. It's rude.
    Next...there are some minor problems with your feed. "Drum n Bass" is not a iTunes category. Stick with <itunes:category text="Music" /> remove the others.
    Not required, but recommend to add an <itunes:explicit> tag with a Y or N depending on what suits your podcast. The iTunes staff will remove your feed if it isn't tagged properly.
    MP3 audio files should have a type="audio/mpeg".
    Keep the Podcast spec handy...the categories and other info listed in the spec.
    Test your feed with http://www.feedvalidator.org it will point out problems with your feed.
    The bigger problems stem from your podcast enclosure, specifically the URL.
    The URL you have listed to the podcast mp3 apparently has changed so iTunes can't download the file. It also appears that you are using a "free download" kind of service that uses web page based downloads, which might account for why the URL keeps changing. Don't think that iTunes will be able to properly download the file.
    Erik

  • Can someone tell me the problem with my Firefox browser?

    every time i try to open it, it doesnt work and it looks like this..
    http://prntscr.com/4yt5zx
    Yes i already restarted my computer, i also uninstalled firefox and re installed it.

    Getting a black screen after updating to Firefox 33 can be caused by a problem with hardware acceleration in Firefox.
    You can start Firefox in <u>[[Safe Mode|Safe Mode]]</u> by holding down the Shift/Options key (Safe Mode disables hardware acceleration).
    You can try to disable hardware acceleration in Firefox.
    *Tools > Options > Advanced > General > Browsing: "Use hardware acceleration when available"
    You need to close and restart Firefox after toggling this setting.
    *https://support.mozilla.org/kb/Troubleshooting+extensions+and+themes
    *https://support.mozilla.org/kb/upgrade-graphics-drivers-use-hardware-acceleration
    Note that there is a Firefox 33.0.1 release scheduled that addresses some hardware acceleration related crashes.

  • What is the problem with this code ? Race condition??

    Guys,
    The idea behind the attached code is quite simple.
    I have a 2D parent array. First, I print a subset of this array into a table control (based on a sensor selection). Now, I want edit the numbers in the table. I need the changes to be reflected in the table and the parent 2D array. (In simple terms, this is like replacing the the edited array subset into the parent 2D array)
    The problem is when I change(edit) any entry in the table, the entry changes back to its original value. The change doesnt seem to be reflecting on the parent 2D array and the table. .
    Can anyone tell me where the problem is?
    Thanks
    Ravi
    Solved!
    Go to Solution.
    Attachments:
    Alarm threshold test.vi ‏14 KB

    I agree with Chris, here's an idea (of whatI think your code does):
    The case structure in your code was unnecessary, all the cases were the same so I removed them.
    The sequence structure was unnecessary.
    Ton
    Message Edited by TonP on 11-20-2008 07:52 PM
    Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
    Nederlandse LabVIEW user groep www.lvug.nl
    My LabVIEW Ideas
    LabVIEW, programming like it should be!
    Attachments:
    Alarm threshold test_BD.png ‏19 KB

  • What is the problem with this code?

    dear sirs...
    i have a page that does not contain any binding, it contains the following event:
    public void onCheck(DataActionContext ctx)
    ViewObject V=ctx.getBindingContext.findDataControl("AppModuleDataControl").getApplicationModule.findViewObject("empview1");
    V.setWhereClause("");
    V.executeQuery();
    V.first();
    note that the above code works if the table emp is on the page, however, if the page is not bound to the page (it does not contains the table) the statement in the bold will fire an exception saying that there is no binding. i am sure the V is not set to null.
    another problem appears, if i put the table and execute it within jdeveloper, it works correctly, however, if i run if i deploy the application into application server, the code never runs as if there is some kind of an error.
    i hope that you can anser me about the following;
    1- if the code above correct?
    2- how can i view the log for the application?
    3- System.out.println("test"); in jdeveloper works okay, in the application server, does it cause some kind of an error?
    thanks for any help & best regards

    If you don't close the ResultSet, different things happen based on which database you're running. You can keep read locks that you don't need. It wastes resources, and as different databases react differently to it, you might have weird bugs down the road that result from your practices of not properly closing ResultSets, PreparedStatements, and Connections. Put this in a loop like you've got here, and the effects may or may not get amplified.
    I write a close() for a ResultSet just as soon as I open it, just to make sure I don't forget. In a situation like this one, I would write something like so:
    for(int i = 0;i<someValue;i++)
    try
    //some code
    rs = pstmt.executeQuery();
    //some code that uses rs
    catch(Exception e)
    finally
      if (rs != null)
        rs.close();
      if (pstmt != null)
        pstmt.close();
    }

  • Whats the problem with this code?

    import javax.swing.JOptionPane;
    public class change{
      int coins[] = {1,5,10,25,50};
      int change=0;
      public void backtracking(coins,change){
        int b=0;
        for(int i=0; i<=4; i++){
          if (coins[i] <= change){
            b = max(b, coins[i]+backtracking(i, change - coins));
    System.out.println("Output: "+b);
    public static void main(){
    int input = JOptionPane.showInputDialog("Amountof the change? ");
    backtracking(coins, input);

    Here's a few, for starters
    import javax.swing.JOptionPane;
    public class change{
    //class names should start with capital letters
      int coins[] = {1,5,10,25,50};
      int change=0;
      public void backtracking(coins,change){
    //this is a method signature, needs type identifiers etc, something like public void backtracking(int[] anyIntArray,int anyInt)
        int b=0;
        for(int i=0; i<=4; i++){
    //here, 4 is a magic number, if you mean <= all the elements of coins[], use < coins.length
          if (coins[i] <= change){
    //coins[i] will never be less then change(which is 0)
            b = max(b, coins[i]+backtracking(i, change - coins));
    //there is no method max declared anywhere
    System.out.println("Output: "+b);
    public static void main(){
    //main method signature is incorrect, will compile, but will error
    int input = JOptionPane.showInputDialog("Amountof the change? ");
    //you're trying to put a string into an int
    backtracking(coins, input);
    //you have not created an instance of class Change, to use this method

  • "When_list_changed" what is the problem with this code???????

    DECLARE
         v_group_grade RECORDGROUP;
         v_pop_group NUMBER;
    BEGIN
         v_group_grade := find_group('group_grade');
         IF NOT id_null(v_group_grade) THEN
                   delete_group(v_group_grade);
         END IF;
         IF :CONTROL_LISTS.STAGE = 1 THEN
              v_group_grade := create_group_from_query('group_grade', 'SELECT grade_name FROM grade WHERE grade_name LIKE ''KG%''');
              v_pop_group := populate_group(v_group_grade);
              populate_list('CONTROL_LISTS.GRADE', v_group_grade);
         ELSIF :CONTROL_LISTS.STAGE = 2 THEN
              v_group_grade := create_group_from_query('group_grade', 'SELECT grade_name FROM grade WHERE grade_name LIKE ''Prim%''');
              v_pop_group := populate_group(v_group_grade);
              populate_list('CONTROL_LISTS.GRADE', v_group_grade);
         ELSIF:CONTROL_LISTS.STAGE = 3 THEN
              v_group_grade := create_group_from_query('group_grade', 'SELECT grade_name FROM grade WHERE grade_name LIKE ''Prep%''');
              v_pop_group := populate_group(v_group_grade);
              populate_list('CONTROL_LISTS.GRADE', v_group_grade);
         ELSE
              NULL;
         END IF;
    END;
    when I change the selection of the STAGE list in the runtime this error apear:
    FRM-41334 invalid record group for list population.

    Thanks Faheem,
    I got it it was in the select statement.
    When I create poplist to fetch data from the database I should select at least two charachter columns.

  • What's the problem in this code

    import java.lang.reflect.*;
    import java.awt.*;
    class ABC
         public Integer i;
         ABC()
         public void setInt(Integer t)
              i = t;
    public class SampleName {
    public static void main(String[] args)
    ABC g1 = new ABC();
    g1.setInt(new Integer(10));
    printFieldNames(g1);
    static void printFieldNames(Object o) {
    Class c = o.getClass();
    Field[] publicFields = c.getDeclaredFields();
    for (int i = 0; i < publicFields.length; i++)
    try {
    Object ref = publicFields.get(c);
    System.out.println(" ref.toString() : " + ref.toString());
         }catch(Exception e)
                   e.printStackTrace();
    What is the problem with this code,at run time Iam getting this exception
    java.lang.IllegalArgumentException: object is not an instance of declaring class
    How can we get the value of field of an object

    Now it got this exception
    java.lang.IllegalAccessException
    at java.lang.reflect.Field.get(Native Method)That's strange - I didn't! ;-)
    Are you running exactly the same code as the code you posted (except for the one line I said to change)?

  • Recently i noticed that the sound is not comming from my i phone 4s so i needed to restore it as it was earlier. So i decided to do it by restoring it without itunes. Now it is taking too long to restore it. Can anybody Tell me what problem i am facing???

    recently i noticed that the sound is not comming from my i phone 4s so i needed to restore it as it was earlier. So i decided to do it by restoring it without itunes. Now it is taking too long to restore it, it is still going on since 3 hours . Can anybody Tell me what problem i am facing???

    Which software did you use to restore it, if you didn't go with iTunes?

  • Can anybody tell me the link to download 10.1.0.5 patchset

    I want to patch my DB with 10.1.0.5, So
    Can anybody tell me the link to download 10.1.0.5 patchset ??
    thanking you

    [jdbc version 10.1.0.5(patchset) and ArrayIndexOutOfBoundsExceptio]
    Hello
    We finnaly got the patchset, extracted the jdbc drivers version 10.1.0.5 and found out that the ArrayIndexOfBoundException problem is still present!
    java.lang.ArrayIndexOutOfBoundsException: -1
         at oracle.jdbc.driver.DateTimeCommonAccessor.computeJulianDay(DateTimeCommonAccessor.java:354)
         at oracle.jdbc.driver.DateTimeCommonAccessor.getMillis(DateTimeCommonAccessor.java:399)
         at oracle.jdbc.driver.DateAccessor.getTimestamp(DateAccessor.java:143)
         at oracle.jdbc.driver.OracleResultSetImpl.getTimestamp(OracleResultSetImpl.java:724)
         at cybiz.db.GeneralDB.pesquisaPaginadaSimples(GeneralDB.java:854)
    driver files: ojdbc14dms.jar, ojdbc14.jar and orai18n.jar
    driver version (all tested): 10.0.1.4, 10.0.1.5 (patchset version), 10.2.0.1
    database version: Oracle 9i 9.2.0.1.
    The problem occurs at the the ResultSet.getTimestamp() method. Apparently, it happens after 10 rows. This exception is thrown for all database tables that contains date columns.
    Does anybody have any thoughts on this? What is most troublesome is that this error doesn't occur with the jdbc drivers target at jdk1.2 (classes12.jar). Another thing is that tthis is not a SQLException. It is a runtime exception that occurs inside the jdbc driver.
    Right now we are stuck...
    Thanks in advance for any help,
    Luis Fernando

  • Can anybody tell me the major deference between JDeveloper 9i & 3.x?

    Dear all:
    I've never used JDeveloper before. Can anybody tell me the major deference between JDeveloper 9i & 3.x? And which is better for me? I'm using Oracle 8i now. Thanks.
    Regards,
    George

    George, I have been working with various versions of JDeveloper for the last 4 years and IMHO JDeveloper 9i is definitely better in so many ways that this is a No-Brainer.
    There are so many new features and many improved features.
    And since you are new to JDeveloper, you might as well start from the latest and greatest.
    For some details on the product, please see the JDeveloper page on OTN (http://otn.oracle.com/products/jdev), from there you can see additional info including Demos (Viewlets) and other info.
    Also, the original Welcome page displayed when JDeveloper is first launched (JD9i/doc/welcome/welcome.html) does a good job of explaining the major features of JDeveloper.
    Good Luck,
    -John

  • Can anybody tell me the program behind Tcode S_ALR_87012078

    Hi,
    can anybody tell me the program behind Tcode S_ALR_87012078
    The program I find is GP1M8IJ5LO18YK19QBZLF70R92P.
    when I copied to another report and executing it .
    I find a slight different input screen what I get from the standard Tcode.
    Regards
    Mave

    Mave,
    S_ALR_87012078 is a parameter transaction and it calls the transaction START_REPORT using the following parameters.
    REPORTTYPE AS 'RE' and
    EXTDREPORT AS 'FBRK01RFRRK20                       0SAPDUEAN-0'
    EXTDREPORT break up is as follows
    APPLCLASS     C     4      FBRK
    SUBCLASS     C     2      01
    TABNAME             C     30      RFRRK20
    REPID             C     12      0SAPDUEAN-01
    By using these values you can get the report name from TKEB1 table. In my system it is showing as GP66V0U85BLAYN61AM5K3DSQMDJ
    Everytime you call the tcode S_ALR_87012078, He sets some of the parameter id's and then dynamically calls the report using the values set in parameter ID's. For understanding the parameter ID's it is setting we need to debug and find out. This is reason why when we copy we will see extra parameters in selection screen.
    If you need further info please let me know.
    Thanks
    Giridhar

Maybe you are looking for

  • Question about packages from AUR that get into [community]

    just noticed that powerpill is out of the AUR and into [community] (yeah!).  My question: since I installed powerpill and its two deps from the AUR, should I uninstall the versions that I built from the AUR then install from the repo or doesn't it ma

  • Likert Column Heading Text Display

    I'm a new Captivate user, I'm creating a "quiz" to pre-screen some job applicants.  I've created some Likert question slides and attempted to change the colunn headings to better fit what I'm asking.  Columns 1, 3 and 5 seem to chop off the text.  I'

  • AIMS for Cabin Crew and Pilot how to make it work!...

    Hello, i am a cabin crew, and since i used my old linux asus 4 g till now using my brand new nokia N900 i am obsessed by the problem that aims software works only on windows or mac, but not on maemo!!!!!!! i put my password and username but after, it

  • Recover iPhone Data without Backup

    I recently was forced to restore my iPhone using a backup from about a month ago. I didn't realize that several contacts had since been added and not synced, so they don't exist on the backup I used. Is there anyway to recover these contacts from the

  • No security with AP

    Hi Simple question and i expect the answer is simple too. The AIR-AP1242AG (IOS style), is it possible to have no security for an SSID - IE open? Thanks KJ