two different jscrollpane but sensitive to the same view

hi all,

i guess i have unusual question.

is it possible to create two jScrollpane obviously in different area in my gui

but they will react for the same events?

for example:

in my gui i have a tree that wrap with a jScrollpane.

i want to put in other place another jScrollpane that will sense the same tree

but without showing it.

just if the tree will expand the second jScrollpane will sense the tree.

TIA

[468 byte] By [Gabia] at [2007-11-27 9:42:58]
# 1

do you mean the 2nd scrollPane will scroll if/when the 1st scrollPane does?

if so, set the scrollbar models the same

JScrollpane sp1 = new JScrollPane(..);

JScrollpane sp2 = new JScrollPane(..);

JScrollBar sb1 = sp1.getVerticalScrollBar();

JScrollBar sb2 = sp2.getVerticalScrollBar();

sb2.setModel(sb1.getModel());

Michael_Dunna at 2007-7-12 23:47:26 > top of Java-index,Desktop,Core GUI APIs...
# 2

Hi Michael,

Thanks for your replay.

Regard your question

<<do you mean the 2nd scrollPane will scroll if/when the 1st scrollPane does?>>

Thats what i mean.

second:

i tried your suggestion but unfortunately it was not worked.

i add my code here with youR suggestionS:

private JPanel getJTableTreeResultPanel() {

if (jTableTreeResultPanel == null) {

jTableTreeResultPanel = new JPanel();

jTableTreeResultPanel.setLayout(new BorderLayout());

jTableTreeResultPanel.setName("Tree Display Panel");

jTableTreeResultPanel.setForeground(new Color(51, 51, 51));

jTableTreeResultPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));

jTableTreeResultPanel.setPreferredSize(new Dimension(687, 417));

jTableTreeResultPanel.setPreferredSize(new Dimension(669, 31));

jTableTreeResultPanel.add(getJTablePanel(), BorderLayout.NORTH);

jTableTreeResultPanel.add(getJTreeScrollPane(), BorderLayout.WEST);

jTableTreeResultPanel.add(getJResultScrollPane(), BorderLayout.CENTER);

jTableTreeResultPanel.add(getJTreeDisplayScrollPane(), BorderLayout.EAST);

}

return jTableTreeResultPanel;

}

private JScrollPane getJTreeScrollPane() {

if (jTreeScrollPane == null) {

jTreeScrollPane = new JScrollPane();

jTreeScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

jTreeScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);

jTreeScrollPane.setPreferredSize(new Dimension(280, 418));

//MICHAEL SUGGETSION

sb1=jTreeScrollPane.getVerticalScrollBar();

jTreeScrollPane.setViewportView(getJTree());

jTreeScrollPane.getVerticalScrollBar().addComponentListener(new ComponentAdapter(){

public void componentShown(ComponentEvent ce){

System.out.println("ScrollBar kicked in");

}

});

}

return jTreeScrollPane;

}

JScrollBar sb1 ;//= sp1.getVerticalScrollBar();

JScrollBar sb2 ;//= sp2.getVerticalScrollBar();

private JScrollPane getJTreeDisplayScrollPane() {

if (jTreeDisplayScrollPane == null) {

jTreeDisplayScrollPane = new JScrollPane();

jTreeDisplayScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

//MICHAEL SUGGETSION

sb2 = jTreeDisplayScrollPane.getVerticalScrollBar();

sb2.setModel(sb1.getModel());

}

return jTreeDisplayScrollPane;

}

Thanks

Gabia at 2007-7-12 23:47:26 > top of Java-index,Desktop,Core GUI APIs...
# 3

worked fine for me, here's the relevant snippet

JScrollBar sb1;

JScrollBar sb2;

private JPanel getJTableTreeResultPanel() {

JPanel jTableTreeResultPanel = new JPanel();

jTableTreeResultPanel.setLayout(new BorderLayout());

jTableTreeResultPanel.add(getJTreeScrollPane(), BorderLayout.WEST);

jTableTreeResultPanel.add(getJTreeDisplayScrollPane(), BorderLayout.EAST);

return jTableTreeResultPanel;

}

private JScrollPane getJTreeScrollPane() {

JTextArea ta = new JTextArea(10,20);

for(int x = 0; x < 50; x++) ta.append(x+"\n");

JScrollPane jTreeScrollPane = new JScrollPane(ta);

sb1=jTreeScrollPane.getVerticalScrollBar();

return jTreeScrollPane;

}

private JScrollPane getJTreeDisplayScrollPane() {

JTextArea ta = new JTextArea(10,20);

for(int x = 0; x < 50; x++) ta.append(x+"\n");

JScrollPane jTreeDisplayScrollPane = new JScrollPane(ta);

sb2 = jTreeDisplayScrollPane.getVerticalScrollBar();

sb2.setModel(sb1.getModel());

return jTreeDisplayScrollPane;

}

Michael_Dunna at 2007-7-12 23:47:26 > top of Java-index,Desktop,Core GUI APIs...
# 4

Hi Michael,

a big thanks for your efforts.

very much appriciate it.

but it still not working .

ill explain why :

you create two text area for each scrollpane.

i need somthing different.

i need that the getJTreeDisplayScrollPane will be without any component.

all the dependency will come from the other scrollpane.

tell you the truth i solved the problem .

and i solved it with your help.

i solved it with using jscorllbar and not scrollpane:

here is the code and thanks again:

package test;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Component;

import java.awt.ComponentOrientation;

import java.awt.Cursor;

import java.awt.Dimension;

import java.awt.Frame;

import java.awt.GridBagConstraints;

import java.awt.GridBagLayout;

import java.awt.Insets;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.BorderFactory;

import javax.swing.DefaultListCellRenderer;

import javax.swing.DefaultListModel;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JList;

import javax.swing.JPanel;

import javax.swing.JProgressBar;

import javax.swing.JScrollBar;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.JTextArea;

import javax.swing.JToolBar;

import javax.swing.JTree;

import javax.swing.SwingConstants;

import javax.swing.UIManager;

import javax.swing.UnsupportedLookAndFeelException;

import javax.swing.event.ChangeEvent;

import javax.swing.event.ListSelectionEvent;

import javax.swing.event.TableColumnModelEvent;

import javax.swing.event.TableColumnModelListener;

import javax.swing.table.DefaultTableCellRenderer;

import javax.swing.table.TableColumn;

import javax.swing.tree.DefaultMutableTreeNode;

public class BaseFrame extends JFrame {

//Specify the look and feel to use. Valid values:

//null (use the default), "Metal", "System", "Motif", "GTK+"

final static String LOOKANDFEEL = "System"; // @jve:decl-index=0:

private static final long serialVersionUID = 1;

private JPanel jContentPane = null;

private boolean Maximized=false;

private JToolBar jToolBar = null;

private JButton jButton = null;

private JPanel jPanel = null;

private JPanel jPanelProgressBar = null;

private JLabel jLabel = null;

private JTextArea jTextArea = null;

private JLabel jLabel1 = null;

private JProgressBar jProgressBar = null;

private JLabel jLabel2 = null;

private JProgressBar jProgressBar1 = null;

private JPanel jTableTreeResultPanel = null;

private JPanel jTablePanel = null;

private JScrollPane jTableScrollPane = null;

private JTable jTable = null;

/**

* This is the default constructor

*/

public BaseFrame() {

super();

initialize();

}

/**

* This method initializes this

*

* @return void

*/

private void initialize() {

initLookAndFeel();

//CATCH MAXIMIZE WINDOW EVENT

addWindowStateListener(new WindowAdapter()

{

public void windowStateChanged(WindowEvent e)

{

if(e.getNewState() == Frame.NORMAL)

{

System.out.println("Window is Normal");

Maximized=false;

}

else if(e.getNewState() == Frame.MAXIMIZED_BOTH)

{

System.out.println("Window is Maximized");

Maximized=true;

}

}

public void windowClosing(WindowEvent e)

{}

});

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setPreferredSize(new Dimension(670, 500));

//this.setSize(300, 200);

this.setSize(670, 500);

this.setContentPane(getJContentPane());

this.setTitle("JFrame");

}

private void initLookAndFeel() {

String lookAndFeel = null;

if (LOOKANDFEEL != null) {

if (LOOKANDFEEL.equals("Metal")) {

lookAndFeel = UIManager.getCrossPlatformLookAndFeelClassName();

} else if (LOOKANDFEEL.equals("System")) {

lookAndFeel = UIManager.getSystemLookAndFeelClassName();

} else if (LOOKANDFEEL.equals("Motif")) {

lookAndFeel = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";

} else if (LOOKANDFEEL.equals("GTK+")) { //new in 1.4.2

lookAndFeel = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";

} else {

System.err.println("Unexpected value of LOOKANDFEEL specified: "

+ LOOKANDFEEL);

lookAndFeel = UIManager.getCrossPlatformLookAndFeelClassName();

}

try {

UIManager.setLookAndFeel(lookAndFeel);

} catch (ClassNotFoundException e) {

System.err.println("Couldn't find class for specified look and feel:"

+ lookAndFeel);

System.err.println("Did you include the L&F library in the class path?");

System.err.println("Using the default look and feel.");

} catch (UnsupportedLookAndFeelException e) {

System.err.println("Can't use the specified look and feel ("

+ lookAndFeel

+ ") on this platform.");

System.err.println("Using the default look and feel.");

} catch (Exception e) {

System.err.println("Couldn't get specified look and feel ("

+ lookAndFeel

+ "), for some reason.");

System.err.println("Using the default look and feel.");

e.printStackTrace();

}

}

}

/**

* This method initializes jContentPane

*

* @return javax.swing.JPanel

*/

private JPanel getJContentPane() {

if (jContentPane == null) {

jContentPane = new JPanel();

jContentPane.setLayout(new BorderLayout());

jContentPane.add(getJToolBar(), BorderLayout.NORTH);

jContentPane.add(getJPanel(), BorderLayout.CENTER);

jContentPane.addComponentListener(new java.awt.event.ComponentAdapter() {

public void componentResized(java.awt.event.ComponentEvent e) {

System.out.println("componentResized()"); // TODO Auto-generated Event stub componentResized()

Component GetComp=e.getComponent();

ExtendTableColumns(GetComp);

}

});

}

return jContentPane;

}

/**

* This method initializes jToolBar

*

* @return javax.swing.JToolBar

*/

private JToolBar getJToolBar() {

if (jToolBar == null) {

jToolBar = new JToolBar();

jToolBar.add(getJButton());

}

return jToolBar;

}

/**

* This method initializes jButton

*

* @return javax.swing.JButton

*/

private JButton getJButton() {

if (jButton == null) {

jButton = new JButton();

jButton.setIcon(new ImageIcon(getClass().getResource("/test/button_help.gif")));

}

return jButton;

}

/**

* This method initializes jPanel

*

* @return javax.swing.JPanel

*/

private JPanel getJPanel() {

if (jPanel == null) {

jPanel = new JPanel();

jPanel.setLayout(new BorderLayout());

jPanel.add(getJPanelProgressBar(), BorderLayout.NORTH);

jPanel.add(getJTableTreeResultPanel(), BorderLayout.CENTER);

}

return jPanel;

}

/**

* This method initializes jPanel1

*

* @return javax.swing.JPanel

*/

private JPanel getJPanelProgressBar() {

if (jPanelProgressBar == null) {

GridBagConstraints gridBagConstraints5 = new GridBagConstraints();

gridBagConstraints5.fill = GridBagConstraints.HORIZONTAL;

gridBagConstraints5.gridy = 2;

gridBagConstraints5.insets = new Insets(3, 3, 3, 3);

gridBagConstraints5.gridx = 1;

GridBagConstraints gridBagConstraints4 = new GridBagConstraints();

gridBagConstraints4.gridx = 0;

gridBagConstraints4.fill = GridBagConstraints.HORIZONTAL;

gridBagConstraints4.gridy = 2;

jLabel2 = new JLabel();

jLabel2.setText("Batch Progress:");

GridBagConstraints gridBagConstraints3 = new GridBagConstraints();

gridBagConstraints3.gridx = 1;

gridBagConstraints3.fill = GridBagConstraints.HORIZONTAL;

gridBagConstraints3.anchor = GridBagConstraints.EAST;

gridBagConstraints3.insets = new Insets(3, 3, 3, 3);

gridBagConstraints3.gridy = 1;

GridBagConstraints gridBagConstraints2 = new GridBagConstraints();

gridBagConstraints2.gridy = 1;

gridBagConstraints2.fill = GridBagConstraints.HORIZONTAL;

gridBagConstraints2.insets = new Insets(1, 1, 0, 0);

jLabel1 = new JLabel();

jLabel1.setText("Test Progress:");

GridBagConstraints gridBagConstraints1 = new GridBagConstraints();

gridBagConstraints1.insets = new Insets(1, 1, 0, 0);

gridBagConstraints1.weightx = 0.0D;

gridBagConstraints1.weighty = 0.0D;

gridBagConstraints1.anchor = GridBagConstraints.WEST;

gridBagConstraints1.fill = GridBagConstraints.NONE;

GridBagConstraints gridBagConstraints = new GridBagConstraints();

gridBagConstraints.fill = GridBagConstraints.HORIZONTAL;

gridBagConstraints.weighty = 1.0D;

gridBagConstraints.gridx = 1;

gridBagConstraints.gridy = 0;

gridBagConstraints.anchor = GridBagConstraints.NORTHWEST;

gridBagConstraints.insets = new Insets(3, 3, 3, 3);

gridBagConstraints.weightx = 1.0D;

jLabel = new JLabel();

jLabel.setText("Current Test:");

jPanelProgressBar = new JPanel();

jPanelProgressBar.setLayout(new GridBagLayout());

jPanelProgressBar.setName("PanelMainNorth");

jPanelProgressBar.add(jLabel, gridBagConstraints1);

jPanelProgressBar.add(getJTextArea(), gridBagConstraints);

jPanelProgressBar.add(jLabel1, gridBagConstraints2);

jPanelProgressBar.add(getJProgressBar(), gridBagConstraints3);

jPanelProgressBar.add(jLabel2, gridBagConstraints4);

jPanelProgressBar.add(getJProgressBar1(), gridBagConstraints5);

}

return jPanelProgressBar;

}

/**

* This method initializes jTextArea

*

* @return javax.swing.JTextArea

*/

private JTextArea getJTextArea() {

if (jTextArea == null) {

jTextArea = new JTextArea();

jTextArea.setBorder(BorderFactory.createLineBorder(Color.gray, 2));

}

return jTextArea;

}

/**

* This method initializes jProgressBar

*

* @return javax.swing.JProgressBar

*/

private JProgressBar getJProgressBar() {

if (jProgressBar == null) {

jProgressBar = new JProgressBar();

}

return jProgressBar;

}

/**

* This method initializes jProgressBar1

*

* @return javax.swing.JProgressBar

*/

private JProgressBar getJProgressBar1() {

if (jProgressBar1 == null) {

jProgressBar1 = new JProgressBar();

}

return jProgressBar1;

}

/**

* This method initializes jTreeResultPanel

*

* @return javax.swing.JPanel

*/

private JPanel getJTableTreeResultPanel() {

if (jTableTreeResultPanel == null) {

jTableTreeResultPanel = new JPanel();

jTableTreeResultPanel.setLayout(new BorderLayout());

jTableTreeResultPanel.setName("Tree Display Panel");

jTableTreeResultPanel.setForeground(new Color(51, 51, 51));

jTableTreeResultPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));

jTableTreeResultPanel.setPreferredSize(new Dimension(687, 417));

jTableTreeResultPanel.setPreferredSize(new Dimension(669, 31));

jTableTreeResultPanel.add(getJTablePanel(), BorderLayout.NORTH);

jTableTreeResultPanel.add(getJTreeScrollPane(), BorderLayout.WEST);

jTableTreeResultPanel.add(getJResultScrollPane(), BorderLayout.CENTER);

jTableTreeResultPanel.add(getJTreeDisplayScrollBar(), BorderLayout.EAST);

}

return jTableTreeResultPanel;

}

/**

* This method initializes jTablePanel

*

* @return javax.swing.JPanel

*/

private JPanel getJTablePanel() {

if (jTablePanel == null) {

GridBagConstraints gridBagConstraints12 = new GridBagConstraints();

gridBagConstraints12.anchor = GridBagConstraints.WEST;

gridBagConstraints12.gridheight = 1;

gridBagConstraints12.gridwidth = 4;

gridBagConstraints12.gridx = -1;

gridBagConstraints12.gridy = -1;

gridBagConstraints12.weightx = 1.0D;

gridBagConstraints12.weighty = 1.0D;

gridBagConstraints12.insets = new Insets(0, 0, -10, 0);

gridBagConstraints12.fill = GridBagConstraints.BOTH;

jTablePanel = new JPanel();

jTablePanel.setLayout(new GridBagLayout());

jTablePanel.add(getJTableScrollPane(), gridBagConstraints12);

}

return jTablePanel;

}

/**

* This method initializes getJTableScrollPane

*

* @return javax.swing.JScrollPane

*/

private JScrollPane getJTableScrollPane() {

if (jTableScrollPane == null) {

jTableScrollPane = new JScrollPane();

jTableScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

jTableScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);

//jTableScrollPane.setPreferredSize(new Dimension(660, 40));

jTableScrollPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));

//jTableScrollPane.setMinimumSize(new Dimension(405, 4));

jTableScrollPane.setViewportView(getJTable());

}

return jTableScrollPane;

}

/**

* This method initializes jTable

*

* @return javax.swing.JTable

*/

TableColumn DiagTreeColumn = null; // @jve:decl-index=0:

TableColumn LastResultcolumn = null; // @jve:decl-index=0:

TableColumn Passcolumn = null; // @jve:decl-index=0:

TableColumn Failcolumn = null; // @jve:decl-index=0:

private JTable getJTable() {

String[] columnNames = {"Diagnostics Tree",

"Last Result",

"# Pass",

"# Fail"

};

Object[][] data = {};

if (jTable == null) {

jTable = new JTable(data,columnNames);

jTable.setPreferredScrollableViewportSize(new Dimension(10,10));

jTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

jTable.getTableHeader().setReorderingAllowed( false );

//ALLIGN ALL THE TITLES TO CENTER

DefaultTableCellRenderer TableRenderer=(DefaultTableCellRenderer)jTable.getTableHeader().getDefaultRenderer();

TableRenderer.setHorizontalAlignment(JLabel.CENTER);

//resize the first column (Diagnostics Tree)

DiagTreeColumn = jTable.getColumnModel().getColumn(0);

DiagTreeColumn.setMinWidth(30);

DiagTreeColumn.setPreferredWidth(282);

DiagTreeColumn.setResizable(true);

//resize the second column (Last Result)

LastResultcolumn = jTable.getColumnModel().getColumn(1);

LastResultcolumn.setPreferredWidth(125);

LastResultcolumn.setResizable(true);

//resize the second column (#Pass)

Passcolumn = jTable.getColumnModel().getColumn(2);

Passcolumn.setPreferredWidth(125);

Passcolumn.setResizable(true);

//resize the second column (#Fail)

Failcolumn = jTable.getColumnModel().getColumn(3);

Failcolumn.setPreferredWidth(125);

Failcolumn.setResizable(true);

jTable.getColumnModel().addColumnModelListener(new TableColumnModelListener(){

public void columnMarginChanged(ChangeEvent e)

{

//int getColumnWidth;

//for Diagnostics Tree

//int getTreeScrollHight;//, getTreeScrollWidth;

//for Last result

//int getResultScrollHight, getResultScrollWidth;

//for #Pass

//int getPassScrollHight, getPassScrollWidth;

//for #Fail

//int getFailScrollHight;//, getFailScrollWidth;

System.out.println("im columnMarginChanged");

//TableColumn resizingColumn = jTable.getTableHeader().getResizingColumn();

/*

if(resizingColumn!=null)

{

int modelindx=resizingColumn.getModelIndex();

//FOR THE FIRST COLUMN("Diagnostics Tree")

if(modelindx==0)

{

System.out.println("we are in Diagnostics Tree Column0");

getColumnWidth=resizingColumn.getWidth();

//int getTreeScrollWidth=jTreeScrollPane.getWidth();

getTreeScrollHight=jTreeScrollPane.getHeight();

jTreePanel.setSize(getColumnWidth, getTreeScrollHight);

jTreePanel.setPreferredSize(new Dimension(getColumnWidth, getTreeScrollHight));

jTreePanel.validate();

jTreePanel.repaint();

//move the all panel jResultPanel

Point ResultPanelLocation=jResultPanel.getLocation();

jResultPanel.setLocation(jTreeScrollPane.getWidth(), ResultPanelLocation.y);

jResultPanel.setSize(jResultPanel.getWidth(),jResultPanel.getHeight());

jResultPanel.setPreferredSize(new Dimension(jResultPanel.getWidth(),jResultPanel.getHeight()));

}

//FOR THE SeCOND COLUMN("Last Result")

if(modelindx==1)

{

System.out.println("we are in Last Result Column");

getColumnWidth=resizingColumn.getWidth();

getResultScrollHight=jResultListScrollPane.getHeight();

getResultScrollWidth=jResultListScrollPane.getWidth();

jResultListScrollPane.setSize(new Dimension(getColumnWidth,getResultScrollHight));

jResultListScrollPane.setPreferredSize(new Dimension(getColumnWidth,getResultScrollHight));

jResultListScrollPane.validate();

//ALSO MOVE THE PASS LIST

Point ResultListScrollPaneLocation=jResultListScrollPane.getLocation();

getPassScrollWidth=jPassListScrollPane.getWidth();

Point PassListScrollPaneLocation=jPassListScrollPane.getLocation();

jPassListScrollPane.setLocation(ResultListScrollPaneLocation.x+getResultScrollWidth, PassListScrollPaneLocation.y);

jPassListScrollPane.validate();

//ALSO MOVE THE FAIL LIST

Point FailListScrollPaneLocation=jFailListScrollPane.getLocation();

jFailListScrollPane.setLocation(PassListScrollPaneLocation.x+getPassScrollWidth, FailListScrollPaneLocation.y);

jFailListScrollPane.validate();

}

//FOR THE THIRD COLUMN("#Pass")

if(modelindx==2)

{

System.out.println("we are in #Pass Column");

getColumnWidth=resizingColumn.getWidth();

getPassScrollHight=jPassListScrollPane.getHeight();

getPassScrollWidth=jPassListScrollPane.getWidth();

jPassListScrollPane.setSize(new Dimension(getColumnWidth,getPassScrollHight));

jPassListScrollPane.setPreferredSize(new Dimension(getColumnWidth,getPassScrollHight));

Point PassListScrollPaneLocation=jPassListScrollPane.getLocation();

jPassListScrollPane.validate();

Point FailListScrollPaneLocation=jFailListScrollPane.getLocation();

jFailListScrollPane.setLocation(PassListScrollPaneLocation.x+getPassScrollWidth, FailListScrollPaneLocation.y);

jFailListScrollPane.validate();

}

//FOR THE FOURTH COLUMN("#Fail")

if(modelindx==3)

{

System.out.println("we are in #Fail Column");

getColumnWidth=resizingColumn.getWidth();

getFailScrollHight=jFailListScrollPane.getHeight();

//int getFailScrollWidth=jFailListScrollPane.getWidth();

jFailListScrollPane.setSize(new Dimension(getColumnWidth,getFailScrollHight));

jFailListScrollPane.setPreferredSize(new Dimension(getColumnWidth,getFailScrollHight));

jFailListScrollPane.validate();

}

}

*/

}

public void columnSelectionChanged(ListSelectionEvent e)

{

System.out.println("in columnSelectionChanged");

}

public void columnAdded(TableColumnModelEvent e)

{

System.out.println("in columnAdded");

}

public void columnMoved(TableColumnModelEvent e)

{

System.out.println("in columnMoved");

}

public void columnRemoved(TableColumnModelEvent e)

{

System.out.println("in columnRemoved");

}

});

}

return jTable;

}

String[] columnNames = {"Diagnostics Tree","Last Result",

"# Pass","# Fail"};

Object[][] data = {};

private void createNodes(DefaultMutableTreeNode top) {

DefaultMutableTreeNode category = null;

DefaultMutableTreeNode SubCategory = null;

DefaultMutableTreeNode SubSubCategoryBasee = null;

DefaultMutableTreeNode SubCategory2 = null;

category = new DefaultMutableTreeNode("Dfe");

top.add(category);

//Sub test visible

SubCategory = new DefaultMutableTreeNode("Test Visible");

category.add(SubCategory);

SubCategory.add(new DefaultMutableTreeNode("Son 1"));

SubCategory.add(new DefaultMutableTreeNode("Son 2"));

SubSubCategoryBasee = new DefaultMutableTreeNode("Test Base");

SubSubCategoryBasee.add(new DefaultMutableTreeNode("Grandson 1"));

SubSubCategoryBasee.add(new DefaultMutableTreeNode("Grandson 2"));

SubCategory.add(SubSubCategoryBasee);

//Sub test visible

SubCategory2 = new DefaultMutableTreeNode("Test Visible2");

category.add(SubCategory2);

SubCategory2.add(new DefaultMutableTreeNode("Son 1"));

SubCategory2.add(new DefaultMutableTreeNode("Son 2"));

SubSubCategoryBasee = new DefaultMutableTreeNode("Test Base");

SubSubCategoryBasee.add(new DefaultMutableTreeNode("Grandson 1"));

SubSubCategoryBasee.add(new DefaultMutableTreeNode("Grandson 2345678910111213141516171920212223242526"));

SubCategory2.add(SubSubCategoryBasee);

}

private DefaultMutableTreeNode top; // @jve:decl-index=0:

//privateDefaultListModel listModel=null;

private int prevWidth=0;

/********WHEN WE MAKE THE RESIZE AND SHRINK

* WE MAKE IT FOR THREE COMPONENTS:

* 1)FOR THE TREECOLUMN

* 2)FOR THE TREEPANEL

* 3)IF during the maximize process we resize some columns

* we have to keep it when we back to original state

* for example:

* if we maximize the window and resize the last result column

* when we back the previous state we shell keep the same size

* AS THE COULMN SIZE

* WE HAVE TO DO THAT FOR ALL THE THREE LIST COMPONENT

* @param GetComp

*/

private void ExtendTableColumns(Component GetComp)

{

int getComponentWidth;

int getComponentHeight;

int DiagTreeColumnWidth;

getComponentWidth=GetComp.getWidth();

getComponentHeight=GetComp.getHeight();

/*

if(getComponentHeight!=0)

{

System.out.println("jTreeResultsScrollPane height="+jTreeResultsScrollPane.getHeight());

System.out.println("jTreePanel height="+jTreePanel.getHeight());

System.out.println("jTreeScrollPane height="+jTreeScrollPane.getHeight());

}

*/

if(prevWidth!=0 && (prevWidth!=getComponentWidth) )

{

/* System.out.println("GetTreescrollwidthfrom resize="+jTreeScrollPane.getWidth());

System.out.println("DiagTreeColumn1 ="+DiagTreeColumn.getWidth());

System.out.println("jTreeScrollPane width ="+jTreeScrollPane.getWidth());

// System.out.println("ResultList width ="+jResultList.getWidth());

System.out.println("Last Result column width ="+LastResultcolumn.getWidth());

DiagTreeColumnWidth= DiagTreeColumn.getWidth();

DiagTreeColumn.setWidth(DiagTreeColumnWidth+(getComponentWidth-prevWidth));

DiagTreeColumn.setPreferredWidth(DiagTreeColumnWidth+(getComponentWidth-prevWidth));

GetComp.invalidate();

GetComp.validate();

GetComp.repaint();

System.out.println("DiagTreeColumn2 ="+DiagTreeColumn.getWidth());

jTreePanel.setSize(DiagTreeColumnWidth+(getComponentWidth-prevWidth), jTreeScrollPane.getHeight());

jTreePanel.setPreferredSize(new Dimension(DiagTreeColumnWidth+(getComponentWidth-prevWidth), jTreeScrollPane.getHeight()));

jTreePanel.invalidate();

jTreePanel.validate();

jTreePanel.repaint();

//IN ORDER TO KEEP CONSTARINT 3

//WE MAKE THE LIST WIDTH THE SAME AS THE COLUMN SIZE

jResultListScrollPane.setSize(LastResultcolumn.getWidth(), jResultList.getHeight());

jResultListScrollPane.setPreferredSize(new Dimension(LastResultcolumn.getWidth(),jResultList.getHeight()));

jResultListScrollPane.invalidate();

jResultListScrollPane.validate();

jResultListScrollPane.repaint();

jPassListScrollPane.setSize(Passcolumn.getWidth(), jPassList.getHeight());

jPassListScrollPane.setPreferredSize(new Dimension(Passcolumn.getWidth(),jPassList.getHeight()));

jPassListScrollPane.invalidate();

jPassListScrollPane.validate();

jPassListScrollPane.repaint();

jFailListScrollPane.setSize(Failcolumn.getWidth(), jFailList.getHeight());

jFailListScrollPane.setPreferredSize(new Dimension(Failcolumn.getWidth(),jFailList.getHeight()));

jFailListScrollPane.invalidate();

jFailListScrollPane.validate();

jFailListScrollPane.repaint();

*/

/*if(DiagTreeColumn.getWidth()==DiagTreeColumn.getMinWidth())

{

jTreePanel.setSize(jTreePanel.getMinimumSize().width, jTreePanel.getHeight());

jTreePanel.setPreferredSize(new Dimension(jTreePanel.getMinimumSize().width, jTreePanel.getHeight()));

jTreePanel.invalidate();

jTreePanel.validate();

jTreePanel.repaint();

}*/

}

/*jContentPane.invalidate();

jContentPane.validate();

jContentPane.repaint();*/

prevWidth=getComponentWidth;

}

DefaultListModel listModel;

DefaultListModel listModelPass;

DefaultListModel listModelFail;

private JScrollPane jTreeScrollPane = null;

private JTree jTree = null;

private JScrollPane jResultScrollPane = null;

private JPanel jResultPanel = null;

private JList jLastResultList = null;

private JList jPassList = null;

private JList jFailList = null;

private JScrollBar jTreeDisplayScrollBar = null;

private JScrollBar jTreeScrollbar =null;

/**

* This method initializes jTreeScrollPane

*

* @return javax.swing.JScrollPane

*/

private JScrollPane getJTreeScrollPane() {

if (jTreeScrollPane == null) {

jTreeScrollPane = new JScrollPane();

jTreeScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

jTreeScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);

jTreeScrollPane.setPreferredSize(new Dimension(280, 418));

jTreeScrollPane.setViewportView(getJTree());

jTreeScrollbar=jTreeScrollPane.getVerticalScrollBar();

}

return jTreeScrollPane;

}

/**

* This method initializes jTree

*

* @return javax.swing.JTree

*/

private JTree getJTree() {

if (jTree == null) {

top = new DefaultMutableTreeNode("DIAGNOSTICS TREE");

createNodes(top);

jTree = new JTree(top);

//expand all nodes

int row=0;

while (row<jTree.getRowCount()) {

jTree.expandRow(row);

row++;

}

}

return jTree;

}

/**

* This method initializes jResultScrollPane

*

* @return javax.swing.JScrollPane

*/

private JScrollPane getJResultScrollPane() {

if (jResultScrollPane == null) {

jResultScrollPane = new JScrollPane();

jResultScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

jResultScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);

jResultScrollPane.setViewportView(getJResultPanel());

}

return jResultScrollPane;

}

/**

* This method initializes jResultPanel

*

* @return javax.swing.JPanel

*/

private JPanel getJResultPanel() {

if (jResultPanel == null) {

GridBagConstraints gridBagConstraints8 = new GridBagConstraints();

gridBagConstraints8.fill = GridBagConstraints.BOTH;

gridBagConstraints8.weighty = 1.0D;

gridBagConstraints8.weightx = 1.0D;

GridBagConstraints gridBagConstraints7 = new GridBagConstraints();

gridBagConstraints7.fill = GridBagConstraints.BOTH;

gridBagConstraints7.weighty = 1.0D;

gridBagConstraints7.weightx = 1.0D;

GridBagConstraints gridBagConstraints6 = new GridBagConstraints();

gridBagConstraints6.fill = GridBagConstraints.BOTH;

gridBagConstraints6.weighty = 1.0D;

gridBagConstraints6.weightx = 1.0D;

jResultPanel = new JPanel();

jResultPanel.setLayout(new GridBagLayout());

jResultPanel.add(getJLastResultList(), gridBagConstraints6);

jResultPanel.add(getJPassList(), gridBagConstraints7);

jResultPanel.add(getJFailList(), gridBagConstraints8);

}

return jResultPanel;

}

/**

* This method initializes jLastResultList

*

* @return javax.swing.JList

*/

private JList getJLastResultList() {

if (jLastResultList == null) {

DefaultListCellRenderer.UIResource UIResource = new DefaultListCellRenderer.UIResource();

UIResource.setComponentOrientation(ComponentOrientation.UNKNOWN);

UIResource.setVerticalTextPosition(SwingConstants.CENTER);

UIResource.setHorizontalAlignment(SwingConstants.CENTER);

UIResource.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));

listModel = new DefaultListModel();

for(int i=0;i<10;i++)

{

listModel.add(i,"Pass");

}

jLastResultList = new JList(listModel);

jLastResultList.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));

jLastResultList.setName("Last Result list");

jLastResultList.setBackground(new Color(236, 233, 212));

jLastResultList.setCellRenderer(UIResource);

}

return jLastResultList;

}

/**

* This method initializes jPassList

*

* @return javax.swing.JList

*/

private JList getJPassList() {

if (jPassList == null) {

DefaultListCellRenderer.UIResource UIResource1 = new DefaultListCellRenderer.UIResource();

UIResource1.setHorizontalAlignment(SwingConstants.CENTER);

listModelPass = new DefaultListModel();

for(int i=0;i<10;i++)

{

listModelPass.add(i,"Dan");

}

jPassList = new JList(listModelPass);

jPassList.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));

jPassList.setName("Pass List");

jPassList.setBackground(new Color(236, 233, 212));

jPassList.setCellRenderer(UIResource1);

}

return jPassList;

}

/**

* This method initializes jFailList

*

* @return javax.swing.JList

*/

private JList getJFailList() {

if (jFailList == null) {

DefaultListCellRenderer.UIResource UIResource2 = new DefaultListCellRenderer.UIResource();

UIResource2.setHorizontalAlignment(SwingConstants.CENTER);

listModelFail = new DefaultListModel();

for(int i=0;i<10;i++)

{

listModelFail.add(i,"Dandan");

}

jFailList = new JList(listModelFail);

jFailList.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));

jFailList.setName("Fail List");

jFailList.setBackground(new Color(236, 233, 212));

jFailList.setCellRenderer(UIResource2);

}

return jFailList;

}

/**

* This method initializes jTreeDisplayScrollBar

*

* @return javax.swing.JScrollBar

*/

private JScrollBar getJTreeDisplayScrollBar() {

if (jTreeDisplayScrollBar == null) {

jTreeDisplayScrollBar = new JScrollBar();

jTreeDisplayScrollBar.setModel(jTreeScrollbar.getModel());

}

return jTreeDisplayScrollBar;

}

}

>

Gabia at 2007-7-12 23:47:26 > top of Java-index,Desktop,Core GUI APIs...