📄 glpanel.java~
字号:
return localityScroll.getLocalityRadius();
}
// zoom .......................
/** Return the ZoomScroll used with this GLPanel. */
public ZoomScroll getZoomScroll()
{
return zoomScroll;
}
/** Set the zoom value of this GLPanel (allowable values between -100 to 100). */
public void setZoomValue( int zoomValue ) {
zoomScroll.setZoomValue(zoomValue);
}
/** Return the zoom value of this GLPanel. */
public int getZoomValue() {
return zoomScroll.getZoomValue();
}
// ....
public JPopupMenu getGLPopup()
{
return glPopup;
}
public void buildLens() {
tgLensSet.addLens(hvScroll.getLens());
tgLensSet.addLens(zoomScroll.getLens());
//tgLensSet.addLens(hyperScroll.getLens());
tgLensSet.addLens(rotateScroll.getLens());
tgLensSet.addLens(tgPanel.getAdjustOriginLens());
}
public void buildPanel() {
final JScrollBar horizontalSB = hvScroll.getHorizontalSB();
final JScrollBar verticalSB = hvScroll.getVerticalSB();
final JScrollBar zoomSB = zoomScroll.getZoomSB();
final JScrollBar rotateSB = rotateScroll.getRotateSB();
final JScrollBar localitySB = localityScroll.getLocalitySB();
setLayout(new BorderLayout());
JPanel scrollPanel = new JPanel();
scrollPanel.setBackground(defaultColor);
scrollPanel.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
/* JPanel modeSelectPanel = new JPanel();
modeSelectPanel.setBackground(defaultColor);
modeSelectPanel.setLayout(new FlowLayout(FlowLayout.CENTER, 0,0));/
/* AbstractAction navigateAction = new AbstractAction("Navigate") {
public void actionPerformed(ActionEvent e) {
tgUIManager.activate("Navigate");
}
};
AbstractAction editAction = new AbstractAction("Edit") {
public void actionPerformed(ActionEvent e) {
tgUIManager.activate("Edit");
}
};*/
// JRadioButton rbNavigate = new JRadioButton(navigateAction);
// rbNavigate.setBackground(defaultColor);
// rbNavigate.setSelected(true);
// JRadioButton rbEdit = new JRadioButton(editAction);
// rbEdit.setBackground(defaultColor);
// ButtonGroup bg = new ButtonGroup();
// bg.add(rbNavigate);
// bg.add(rbEdit);
// modeSelectPanel.add(rbNavigate);
// modeSelectPanel.add(rbEdit);
final JPanel topPanel = new JPanel();
topPanel.setBackground(defaultColor);
topPanel.setLayout(new GridBagLayout());
c.gridy=0; c.fill=GridBagConstraints.HORIZONTAL;
/*
c.gridx=0;c.weightx=0;
topPanel.add(new Label("Zoom",Label.RIGHT), c);
c.gridx=1;c.weightx=0.5;
topPanel.add(zoomSB,c);
c.gridx=2;c.weightx=0;
topPanel.add(new Label("Locality",Label.RIGHT), c);
c.gridx=3;c.weightx=0.5;
topPanel.add(localitySB,c);
*/
c.gridx=0;c.weightx=0;c.insets = new Insets(0,10,0,10);
// topPanel.add(modeSelectPanel,c);
c.insets=new Insets(0,0,0,0);
c.gridx=1;c.weightx=1;
scrollBarHash.put(zoomLabel, zoomSB);
scrollBarHash.put(rotateLabel, rotateSB);
scrollBarHash.put(localityLabel, localitySB);
JPanel scrollselect = scrollSelectPanel(new String[] {zoomLabel, rotateLabel, localityLabel});
scrollselect.setBackground(defaultColor);
topPanel.add(scrollselect,c);
add(topPanel, BorderLayout.NORTH);
c.fill = GridBagConstraints.BOTH;
c.gridwidth = 1;
c.gridx = 0; c.gridy = 1; c.weightx = 1; c.weighty = 1;
scrollPanel.add(tgPanel,c);
c.gridx = 1; c.gridy = 1; c.weightx = 0; c.weighty = 0;
scrollPanel.add(verticalSB,c);
c.gridx = 0; c.gridy = 2;
scrollPanel.add(horizontalSB,c);
add(scrollPanel,BorderLayout.CENTER);
glPopup = new JPopupMenu();
glPopup.setBackground(defaultColor);
JMenuItem menuItem = new JMenuItem("Toggle Controls");
ActionListener toggleControlsAction = new ActionListener() {
boolean controlsVisible = true;
public void actionPerformed(ActionEvent e) {
controlsVisible = !controlsVisible;
horizontalSB.setVisible(controlsVisible);
verticalSB.setVisible(controlsVisible);
topPanel.setVisible(controlsVisible);
}
};
menuItem.addActionListener(toggleControlsAction);
glPopup.add(menuItem);
}
protected JPanel scrollSelectPanel(String[] scrollBarNames) {
final JComboBox scrollCombo = new JComboBox(scrollBarNames);
scrollCombo.setBackground(defaultColor);
scrollCombo.setPreferredSize(new Dimension(80,20));
scrollCombo.setSelectedIndex(0);
final JScrollBar initialSB = (JScrollBar) scrollBarHash.get(scrollBarNames[0]);
scrollCombo.addActionListener(new ActionListener() {
JScrollBar currentSB = initialSB;
public void actionPerformed(ActionEvent e) {
JScrollBar selectedSB = (JScrollBar) scrollBarHash.get(
(String) scrollCombo.getSelectedItem());
if (currentSB!=null) currentSB.setVisible(false);
if (selectedSB!=null) selectedSB.setVisible(true);
currentSB = selectedSB;
}
});
final JPanel sbp = new JPanel(new GridBagLayout());
sbp.setBackground(defaultColor);
GridBagConstraints c = new GridBagConstraints();
c.gridx = 0; c.gridy = 0; c.weightx= 0;
sbp.add(scrollCombo,c);
c.gridx = 1; c.gridy = 0; c.weightx = 1; c.insets=new Insets(0,10,0,17);
c.fill=GridBagConstraints.HORIZONTAL;
for (int i = 0;i<scrollBarNames.length;i++) {
JScrollBar sb = (JScrollBar) scrollBarHash.get(scrollBarNames[i]);
if(sb==null) continue;
if(i!=0) sb.setVisible(false);
//sb.setMinimumSize(new Dimension(200,17));
sbp.add(sb,c);
}
return sbp;
}
public void addUIs() {
tgUIManager = new TGUIManager();
GLEditUI editUI = new GLEditUI(this);
GLNavigateUI navigateUI = new GLNavigateUI(this);
tgUIManager.addUI(editUI,"Edit");
tgUIManager.addUI(navigateUI,"Navigate");
tgUIManager.activate("Navigate");
}
public void randomGraph() throws TGException {
Node n1= tgPanel.addNode();
n1.setType(0);
for ( int i=0; i<246; i++ ) {
Node r = tgPanel.getGES().getRandomNode();
Node n = tgPanel.addNode();
n.setType(0);
if (tgPanel.findEdge(r,n)==null) tgPanel.addEdge(r,n,Edge.DEFAULT_LENGTH);
if (i%2==0) {
r = tgPanel.getGES().getRandomNode();
if (tgPanel.findEdge(r,n)==null) tgPanel.addEdge(r,n,Edge.DEFAULT_LENGTH);
}
}
tgPanel.setLocale(n1,2);
}
public void myGraph() throws TGException {
// System.err.println("Maximum = " + maxa);
Node [] centre = new Node[K];
for (int i=0; i<K; i++) {
centre[i] = tgPanel.addNode(null, new String("Cluster " + i), Color.black);
centre[i].setType(2);
}
for ( int i=0; i<N; i++ ) {
// System.err.println(labels[i] + " " + ass[i] + " " + strength[i]);
Node n = tgPanel.addNode(labels[i]);
n.setType(1);
tgPanel.addEdge(n,centre[ass[i]],(int)(10.0+1000.0*strength[i]));
}
for (int i=0; i<K; i++) {
for (int j=0; j<i; j++) {
tgPanel.addEdge2(centre[i],centre[j],(int)(10.0+2000.0*dist[i][j]), Color.black);
}
}
// tgPanel.setLocale(centre[0],1);
}
public static void main(String[] args) {
JFrame frame;
frame = new JFrame("Graph Layout");
GLPanel glPanel = new GLPanel();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
});
frame.getContentPane().add("Center", glPanel);
frame.setSize(500,500);
frame.setVisible(true);
}
} // end com.touchgraph.graphlayout.GLPanel
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -