DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

+ Reply to Thread
Results 1 to 3 of 3
  1. #1
    Lim Wing Hoe Guest

    Now JInternalFrame closing method is not working...:(

    OK, I managed to get the code working for JFrame's windowClosing() method.
    Now the JInternalFrame method is not working...

    Help?

    --



    Best Regards,
    Wing Hoe
    ---------------------------------------------------------------
    ICQ: 2213281
    Email: winghoe@hotmail.com
    www: http://pwp.maxis.net.my/winghoe
    ---------------------------------------------------------------





  2. #2
    Lim Wing Hoe Guest

    Re: Now JInternalFrame closing method is not working...:(

    Attaching my code for PublicChat here for you guys to inspect.
    --



    Best Regards,
    Wing Hoe
    ---------------------------------------------------------------
    ICQ: 2213281
    Email: winghoe@hotmail.com
    www: http://pwp.maxis.net.my/winghoe
    ---------------------------------------------------------------

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.io.*;
    import java.net.*;
    import java.util.*;

    class PublicChat extends JInternalFrame implements Runnable
    {//begin class PublicChat

    private String userName = "winghoe";
    private String chatString;

    private JTextField txtChatString;
    private JTextArea txtChatArea;
    private JScrollPane scrollChatArea;
    private JButton btnSend;
    private JPanel pnlSouth;

    private Status status;
    private EventsLog eventsLog;
    private RWSettings rwSettings;
    private String host;
    private int port;
    private ObjectOutputStream output;
    private ObjectInputStream input;
    private Thread publicChatThread;


    public PublicChat(EventsLog eventsLog) throws IOException
    {//begin PublicChat()
    super("Public Chat");
    this.eventsLog = eventsLog;
    status = new Status();
    status.setPublicChatLoaded(true);
    eventsLog.writeEventsLog("Initializing PublicChat Components...");
    initializeComponents();
    eventsLog.writeEventsLog("Reading Public Chat's Host and Port...");
    readHostPortNo();
    eventsLog.writeEventsLog("Initializing eventHandlers...");
    listenToButtonClick();
    pack();
    show();
    }//end PublicChat()

    public void listenToInternalFrameEvent()
    {//begin listenToInternalFrameEvent()
    addInternalFrameListener(
    new InternalFrameAdapter()
    {//begin InternalFrameAdapter()
    public void internalFrameClosing(InternalFrameEvent e)
    {//begin internalFrameClosing()
    cleanUpProcesses();
    }//end internalFrameClosing()
    }//end InternalFrameAdapter()
    );//complete addInternalFrameListener
    }//end listenToInternalFrameEvent()


    public void readHostPortNo()
    {//begin readHostPortNo()
    rwSettings = new RWSettings();
    rwSettings.readSettings();
    this.host = rwSettings.getServerName();
    this.port = rwSettings.getPublicChatPortNo();
    }//end readHostPortNo()

    public void initializeComponents()
    {//begin initializeComponents()
    Container c = getContentPane();
    c.setLayout(new BorderLayout());
    txtChatString = new JTextField();
    txtChatArea = new JTextArea();
    scrollChatArea = new JScrollPane(txtChatArea);
    btnSend = new JButton("Send");
    pnlSouth = new JPanel();
    txtChatArea.setEditable(false);
    txtChatArea.setLineWrap(true);
    pnlSouth.setLayout(new BorderLayout());
    pnlSouth.add(txtChatString, BorderLayout.CENTER);
    pnlSouth.add(btnSend, BorderLayout.EAST);
    c.add(pnlSouth, BorderLayout.SOUTH);
    c.add(scrollChatArea, BorderLayout.CENTER);
    txtChatString.requestFocus();
    setPreferredSize(new Dimension(400,200));
    setClosable(true);
    setResizable(true);
    setIconifiable(true);
    setMaximizable(true);
    setVisible(false);
    }//end initializeComponents()

    public void listenToButtonClick()
    {//begin listenToButtonClick()
    btnSend.addActionListener(
    new ActionListener()
    {//begin ActionListener()
    public void actionPerformed(ActionEvent e)
    {//begin actionPerformed()
    {//begin if
    sendChatString(userName,txtChatString.getText());
    txtChatString.setText("");
    }//end if
    }//end actionPerformed()
    }//end ActionListener()
    );//complete btnSend.addActionListener
    }//end listenToButtonClick()


    public synchronized void start() throws IOException
    {//begin start()
    if (publicChatThread == null)
    {//begin if
    Socket publicChatSocket = new Socket(host, port);
    eventsLog.writeEventsLog("Connected to Public Chat Server: " +
    host + ", at Port: " + port + "...");
    try
    {//begin try
    eventsLog.writeEventsLog("Setting up I/O streams...");
    output = new ObjectOutputStream(
    publicChatSocket.getOutputStream());
    output.flush();
    input = new ObjectInputStream(
    publicChatSocket.getInputStream());
    output.writeUTF(userName);
    output.writeUTF(" >> connecting to Chat Server...");
    output.flush();
    }//end try
    catch(IOException io)
    {//begin catch
    publicChatSocket.close();
    eventsLog.writeEventsLog("I/O Error encountered...\n" + io);
    }//end catch
    publicChatThread = new Thread(this);
    publicChatThread.start();
    setVisible(true);
    eventsLog.writeEventsLog("Public Chat is ready...");
    }//end if
    }//end start()

    public synchronized void stop() throws IOException
    {//begin stop()
    if(publicChatThread != null)
    {//begin if
    publicChatThread.interrupt();
    publicChatThread = null;
    output.close();
    input.close();
    }//end if
    }//end stop()

    public void run()
    {//begin run()
    try
    {//begin try
    while (!Thread.interrupted())
    {//begin while
    userName = input.readUTF();
    chatString = input.readUTF();
    updateChatArea(userName, chatString);
    }//end while
    }//end try
    catch(Exception ex)
    {//begin catch
    ex.printStackTrace();
    }//end catch
    /* catch(IOException io)
    {//begin catch
    io.printStackTrace();
    }//end catch
    */ }//end run()

    public void updateChatArea(String userNameAndChatString, String chatString)
    {//begin updateChatArea()
    txtChatArea.append(userName + " >> " + chatString + "\n");
    txtChatArea.setCaretPosition(txtChatArea.getText().length());
    txtChatString.requestFocus();
    }//end updateChatArea()

    public void sendChatString(String userName, String chatString)
    {//begin sendChatString()
    try
    {//begin try
    output.writeUTF(userName);
    output.writeUTF(chatString);
    output.flush();
    }//end try
    catch(IOException io)
    {//begin catch
    io.printStackTrace();
    }//end catch
    catch(NullPointerException noe)
    {//begin catch
    noe.printStackTrace();
    }//end catch
    }//end sendChatString()


    public void cleanUpProcesses()
    {//begin cleanUpProcesses()
    try
    {//begin try
    stop();
    status.setPublicChatLoaded(false);
    dispose();
    }//end try
    catch(IOException io)
    {//begin catch
    }//end catch
    }//end cleanUpProcesses()

    }//end class PublicChat



  3. #3
    Lim Wing Hoe Guest

    Re: Now JInternalFrame closing method is not working...:(

    Based on the solution available in the previous JFrame given by Kean,
    I tried it on JInternalFrame as well.

    code required:
    import javax.swing.event.*; // this import is required to get the
    InternalFrameEvent

    class myJInternalFrame extends JInternalFrame implements
    JInternalFrameListener
    {
    public myJInternalFrame()
    {
    addInternalFrameListener(this);
    }

    //all the methods for JInternalFrameListener here, almost like
    WindowListener
    public void internalFrameClosing(InternalFrameEvent e)
    {
    System.out.println("Internal frame is closing");
    }
    }
    --



    Best Regards,
    Wing Hoe
    ---------------------------------------------------------------
    ICQ: 2213281
    Email: winghoe@hotmail.com
    www: http://pwp.maxis.net.my/winghoe
    ---------------------------------------------------------------





Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


Top DevX Stories

Easy Web Services with SQL Server 2005 HTTP Endpoints
JavaOne 2005: Java Platform Roadmap Focuses on Ease of Development, Sun Focuses on the "Free" in F.O.S.S.
Wed Yourself to UML with the Power of Associations
Microsoft to Add AJAX Capabilities to ASP.NET
IBM's Cloudscape Versus MySQL


Sponsored Links