I have developed a frame in swing containing tabbedpane.
From that frame i move to next frame having JDeskTop Pane. Also i have created object of Socket and ServerSocket and keep it in listening mode.
I want both the frame visible and want to use both.
But whenever i am executing code system is getting hanged.
When i remove listening mode then it executed properly.
please help me..
My code is as follow
import java.awt.*;
import javax.swing.*;
class TabbedPaneExample extends JFrame
{
private JTabbedPane tabbedPane;
public TabbedPaneExample()
{
Container c=getContentPane();
Toolkit toolkit = Toolkit.getDefaultToolkit ();
Dimension dim = toolkit.getScreenSize();
setSize(dim.width,dim.height);
setTitle("Network Monitoring System");
setBackground(Color.gray );
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel topPanel = new JPanel();
topPanel.setLayout( new BorderLayout() );
c.add(topPanel );
tabbedPane = new JTabbedPane();
tabbedPane.addTab( "Monitoring", new Monitor());
topPanel.add( tabbedPane, BorderLayout.CENTER );
}
public static void main( String args[] )
{
TabbedPaneExample mainFrame = new TabbedPaneExample();
mainFrame.setVisible( true );
}
}
Monitor Class..
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class Monitor extends JPanel implements ActionListener
{
JLabel welcome;
JButton start,stop;
JComboBox ipCombo;
Monitor()
{
setLayout( null );
Toolkit toolkit = Toolkit.getDefaultToolkit ();
Dimension dim = toolkit.getScreenSize();
Font f=new Font("Verdana",Font.BOLD,20);
welcome = new JLabel("Welcome To Remote Monotoring System");
welcome.setBounds( dim.width/4, 30, 550, 80 );
welcome.setFont(f);
add(welcome);
ipCombo=new JComboBox();
ipCombo.addItem("192.168.1.16");
ipCombo.addItem("second");
ipCombo.addItem("third");
ipCombo.setBounds(100,100,150,20);
add(ipCombo);
start=new JButton("Start");
start.setBounds(100,140,80,30);
add(start);
start.addActionListener(this);
stop=new JButton("Stop");
stop.setBounds(250,140,80,30);
add(stop);
stop.addActionListener(this);
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==start)
{
new AddingInternalFramestoaJDesktopPane();
System.out.println("Start...");
}
else if(ae.getSource()==stop)
System.out.println("Stop...");
}
}
Adding Internal Frames To Desktop Pane...
import java.awt.BorderLayout;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import java.awt.*;
import javax.swing.*;
public class AddingInternalFramestoaJDesktopPane {
JFrame frame;
JDesktopPane desktop;
public AddingInternalFramestoaJDesktopPane()
{
String port = JOptionPane.showInputDialog("Please enter listening port");
System.out.println(port);
drawGUI();
initialize(Integer.parseInt(port));
}
void drawGUI()
{
frame = new JFrame();
frame.setTitle("DeskTop Frame");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
desktop = new JDesktopPane();
JInternalFrame internalFrame = new JInternalFrame("Can Do All", true, true, true, true);
desktop.add(internalFrame);
internalFrame.setBounds(25, 25, 200, 100);
JLabel label = new JLabel("Mahavir Demo", JLabel.CENTER);
internalFrame.add(label, BorderLayout.CENTER);
internalFrame.setVisible(true);
frame.add(desktop, BorderLayout.CENTER);
Toolkit toolkit = Toolkit.getDefaultToolkit ();
Dimension dim = toolkit.getScreenSize();
frame.setSize(dim.width,dim.height-30);
frame.setVisible(true);
}
public void initialize(int port){
try {
ServerSocket sc = new ServerSocket(port);
while(true){
Socket client = sc.accept();
System.out.println("New client Connected to the server");
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}