Please have a look at the following code.
package normal;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class MainForm extends JFrame implements ComponentListener
{
private JTabbedPane tab;
private InsertForm insertForm;
private UpdateDeleteForm updateDelete;
private SearchForm searchForm;
public MainForm()
{
tab = new JTabbedPane();
insertForm = new InsertForm();
updateDelete = new UpdateDeleteForm();
searchForm = new SearchForm();
//Creating the main window
tab.add(insertForm,"Insert");
tab.add(updateDelete,"Update/Delete");
tab.add(searchForm,"Search");
tab.addChangeListener(new TabChangeWork());
getContentPane().add(tab);
// this.setSize(500,500);
this.setTitle("My Phone Book App");
this.setResizable(false);
this.pack();
this.validate();
this.setLocationRelativeTo(null);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void componentResized(ComponentEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void componentMoved(ComponentEvent e)
{
System.out.println("X Location: "+this.getX());
}
@Override
public void componentShown(ComponentEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void componentHidden(ComponentEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
private class TabChangeWork implements ChangeListener
{
@Override
public void stateChanged(ChangeEvent e)
{
JTabbedPane tabSource = (JTabbedPane)e.getSource();
int index = tabSource.getSelectedIndex();
System.out.println("Tab Changed to: "+tabSource.getTitleAt(index));
if(tabSource.getTitleAt(index).equals("Update/Delete"))
{
updateDelete.addNames();
}
}
}
}
In here, the ComponentListener is not working properly because the action inside the method “ComponentMoved” is not happening. I am trying to the get the new coordinates of the JFrame if this is moved. Why it is not working? Please help!!
You have not registered with the
ComponentListeneranywhere in the code…Do it like this….