What is the error with this code ??
i'm trying to execute the following AS3 code:
var itemsArr:Array = new Array ();
var i:int;
var loaderAds:URLLoader = new URLLoader();
loaderAds.load(new URLRequest("ads.txt"));
loaderAds.addEventListener(Event.COMPLETE, completeHandlerAds);
function completeHandlerAds(eventAds:Event):void {
var loaderAds:URLLoader = URLLoader(eventAds.target);
var varsAds:URLVariables = new URLVariables(loaderAds.data);
itemsArr = varsAds.names.split(";");
for (i = 0; i < (itemsArr.length); i++) {
trace("itemsArr, Processing: " + itemsArr[i]);
var loaderProps:URLLoader = new URLLoader();
loaderProps.load(new URLRequest(itemsArr[i]+".txt"));
loaderProps.addEventListener(Event.COMPLETE, completeHandlerProps);
trace("one: " + itemsArr[i]);
function completeHandlerProps(eventProps:Event):void {
trace("two: " + itemsArr[i]);
}// end of fn for props
}//end of "for" loop of ads names
}//end of fn for ads names
But i get the following output:
adsNames Array: ad0,ad1
adsNames, Processing: ad0
ad0
adsNames, Processing: ad1
ad1
null
TypeError: Error #2007: Parameter name must be non-null.
at flash.display::DisplayObject/set name()
at MethodInfo-279()
at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunctio n()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/flash.net:URLLoader::onComplete()
null
TypeError: Error #2007: Parameter name must be non-null.
at flash.display::DisplayObject/set name()
at MethodInfo-279()
at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunctio n()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/flash.net:URLLoader::onComplete()
As you see, the "red text" is errors, Can you tell me the reason for it ?
And also, tracing "itemsArr[i]" in the second time, always give "null", also in the first time, it give the correct value, Why ?
the red text not appear after i posted the topic, but you can see the errors on the output
and, you've to create to text files, first called "ads.txt" and put in it "names=ad0;ad1"
second one called "ad0.txt" and put anything in it, and another called "ad1.txt" and put anything in it
all these files should be in the same dir of flash file
Similar Messages
-
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"));
} -
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();
} -
What is the error in this code
hi everone
I write this code in push button
declare
x varchar2(222);
begin
x:=get_application_property(:system.mode);
message(x);
end;
to know the system mode
but the resullt was exeception ora-06502simple write
x := :system.mode;
or
message(:system.mode);
message(:system.mode);Best way to resolve the issue is always check Forms online help first -
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 KBI 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 regardsIf 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();
} -
What's the error in this code?
I keep getting an error message at "line 1 column 97" which is the letter "i" in the second "if."
begin if :P23_START_DATE is null or :P23_START_DATE = ' ' then :P23_START_DATE:= '01-JAN-2001';
if :P23_END_DATE = is null or :P23_END_DATE = ' ' then
:P23_END_DATE = '31-DEC-2099';
select 'http://apexdevapp1.ci.raleigh.nc.us:7777',
user_name, count(ID) total
FROM eba_ver2_cust_activity
where ACTIVITY_DATE <= to_char(to_date(:P23_END_DATE,'dd-mon-yyyy'),'dd-mon-yyyy')
and ACTIVITY_DATE >= to_char(to_date(:P23_START_DATE,'dd-mon-yyyy'),'dd-mon-yyyy')
group by
user_name,
'http://apexdevapp1.ci.raleigh.nc.us:7777'
end;
Honestly, I don't see where the problem is. Help me please.
Steve "the n00b" in Raleigh NCackness wrote:
You could forgo the IF statements altogether by doing using NVL and TRIM this:
begin
select
'http://apexdevapp1.ci.raleigh.nc.us:7777',
user_name, count(ID) total
FROM eba_ver2_cust_activity
where ACTIVITY_DATE BETWEEN NVL(TRIM(:P23_START_DATE), '01-JAN-2001') AND NVL(TRIM(:P23_END_DATE), '31-DEC-2099');
group by
user_name,
'http://apexdevapp1.ci.raleigh.nc.us:7777';
end;
also you can simplify the GROUP BY by
begin
select
MAXX('http://apexdevapp1.ci.raleigh.nc.us:7777') URL,
user_name, count(ID) total
FROM eba_ver2_cust_activity
where ACTIVITY_DATE BETWEEN NVL(TRIM((:P23_START_DATE), '01-JAN-2001') AND NVL(TRIM((:P23_END_DATE), '31-DEC-2099');
group by
user_name;
end;Ackness, I tried your first suggestion, and got this when I applied the changes.
1 error has occurred
Failed to parse SQL query:
BEGIN SELECT 'http://apexdevapp1.ci.raleigh.nc.us:7777', user_name, count(ID) total FROM eba_ver2_cust_activity where ACTIVITY_DATE BETWEEN NVL(TRIM(:P23_START_DATE), '01-JAN-2001') AND NVL(TRIM(:P23_END_DATE), '31-DEC-2099'); group by user_name, 'http://apexdevapp1.ci.raleigh.nc.us:7777'; end
ORA-06550: line 5, column 115: PLS-00103: Encountered the symbol "" when expecting one of the following: begin case declare end exception exit for goto if loop mod null pragma raise return select update while with << close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe
Certain queries can only be executed when running your application, if your query appears syntactically correct, you can save your query without validation (see options below query source).
I can't for the life of me figure out where the invalid character is after "begin." All I can see is a blank character. Thanks for your help.
Steve "the n00b" -
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 is the ploblem with this code?
class lol
Connection con;
ResultSet rs;
String query="";
String scno,bcrcno,prno,prdt,billamt,misamt,miscd,reconchg;
lol()
try{
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String ServerName="127.0.0.1";
String portnum="1521";
String sid="GRC";
String url="jdbc:oracle:thin:@"+ServerName+":"+portnum+":"+sid;
con = DriverManager.getConnection(url,"scott"," tiger");
con.setAutoCommit(true);
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
query="select ptscno,ptbcrno,ptprno,to_char(ptprdt,'yyyy-mm-dd'),ptblamt,ptmisamt,ptmisamtcd,ptreconchg from payment";
rs=stmt.executeQuery(query);
while(rs.next())
java.sql.Date myDate = new java.sql.Date(System.currentTimeMillis());
rs.updateDate(4, myDate);
System.out.println(myDate);
rs.updateRow();
con.commit();
con.close();
}catch(Exception e)
System.out.println("connection failed :"+e);
public static void main(String lol[])
new lol();
thanq in advance,
stalinthat was just a simple code,
all other fields are updating except the Date field where i use updateDate method.
please explain or show me some example to update the date filed.
thanq in advance.
stalin. -
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 objectNow 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)? -
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 endsHere 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 -
What is the problem with this Stored Procedure
Hi ,
What is the problem with this Stored Procedure ?Why is it giving errors ??
CREATE or replace PROCEDURE getEmpName
*(EMP_FIRST OUT VARCHAR2(255))*
BEGIN
SELECT ename INTO EMP_FIRST
FROM Emp
WHERE EMPNO = 7369;
END ;
*/*You don't specify precision in procedure arguments.
(EMP_FIRST OUT VARCHAR2(255))should be
(EMP_FIRST OUT VARCHAR2)Since you asked what's wrong with it, I could add that it needs formatting and the inconsistent use of upper and lower case is not helping readability. -
My computer died and I had to buy another one. Now I can't sync my ipod classic. What is the deal with this? I added songs about three months ago and it was fine. Now it won't sync. It says it can't sync because there is a duplicate file.
There are server problems right now with iMessage effecting some users. See http://www.apple.com/support/icloud/systemstatus/.
-
What's the go with this latest update. Half my apps don't work and the iPad runs slower? How do I go back to the old operating system?
Make sure your apps are updated. You might try Settings > iTunes & App Store > Automatic Downloads - Updates = "On".
You cannot go back to an old operating system. -
HT202213 My apple TV no longer finding my movies and photos. What's the deal with this?
My apple TV no longer finding my movies and photos. What's the deal with this?
That would be awesome, if the nearest service area wasn't 4 hours away.... It would cost me just as much in gas to drive down there as it would just to buy a cheap replacement off of ebay...
Maybe you are looking for
-
Hi, This is similar - yet different - to a few of the old postings about performance problems with using jdbc drivers against Sql Server 7 & 2000. Here's the situation: I am running a standalone java application on a Solaris box using BEA's jdbc driv
-
TS3989 Photostream not working on my PC
Since U/G to IOS 6, Photo Stream quit working on my PC. Stats: O/S Win 7 x 64: I have re-installed the icloud App and it shows in my Quick Launch area: When I launch it - it shows Mail/Contacts as checked but NO CHECK by Photo Stream and the Options
-
Regarding SNMP trap on Backup Unity connection failure
Hi, if backup of Unity connection failed, would a backup failure produce an SNMP trap? thanks, Kamran
-
Can we give an external input to 5610 upconverter
Hi, This is just to clarify a technical doubt concerning with NI RFSG.. We have purchased two PXI 1033 chassis(one with 5610 upconverter and the other with 5600 down converter) for our project...Now we are trying to test the transmiter system only..W
-
Where can i find oracle 11g csi number
Hi oracle Lord's This is Arun, I'm facing some problem while I installing oracle 11g on my machine. I downloaded oracle 11g from the below link http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html. While I installing ora