import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class TFB {
private static final long serialVersionUID = 1L;
JDesktopPane desk;
JDesktopPane ifdesk;
JScrollPane scrollpane;
JInternalFrame iframe;
JFrame frame;
JList jList1;
JInternalFrame currentframe;
Integer currentframenumber;
String currentframename;
Boolean[] downuptracker;
Integer deskwidth = 1000;
Integer deskheight = 1000;
Integer scrollwidth = 1000;
Integer scrollheight = 1000;
JButton DownUpButton;
public static void main(String[] args) {
new TFB();
}
public TFB(){
downuptracker = new Boolean [99];
frame = new JFrame("Test Frame Button");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
scrollpane = new JScrollPane(desk,
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
scrollpane.setPreferredSize(new Dimension(scrollwidth, scrollheight));
// If you're going to make a new JDesktopPane here there is
// no need to have the enclosing class extend JDesktopPane.
desk = new JDesktopPane();
desk.setPreferredSize(new Dimension(deskwidth, deskheight));
// Only need to do this one time.
UIManager.getDefaults().put("InternalFrame.icon", "");
int i = 5;
for (int j = 0; j <= i; j++){
// UIManager.getDefaults().put("InternalFrame.icon", "");
iframe = new JInternalFrame("Internal Frame: " + j,
false, true, false, false);
iframe.setName(String.valueOf(j));
iframe.setBounds(30*j, 30*j,265 , 80);
iframe.addInternalFrameListener(new InternalFrameListener(){
public void internalFrameClosing(InternalFrameEvent e) {}
public void internalFrameClosed(InternalFrameEvent e) {}
public void internalFrameOpened(InternalFrameEvent e) {}
public void internalFrameIconified(InternalFrameEvent e) {}
public void internalFrameDeiconified(InternalFrameEvent e) {}
public void internalFrameActivated(InternalFrameEvent e) {
currentframe = e.getInternalFrame();
currentframename = e.getInternalFrame().getName();
currentframenumber = Integer.valueOf(currentframename);
System.out.println("activatedFrame name = " +
currentframename);
}
public void internalFrameDeactivated(InternalFrameEvent e) {}
});
iframe.setTitle("Internal Frame :" + j);
iframe.setVisible(true);
downuptracker[j] = true;
// ifdesk = new JDesktopPane();
// iframe.getContentPane().add(ifdesk, BorderLayout.CENTER);
DownUpButton = new JButton("Old Icon here");
// ifdesk.add(DownUpButton);
iframe.setLayout(null);
DownUpButton.setBounds(0, 0, 130, 20);
iframe.getContentPane().add(DownUpButton);
DownUpButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// Try getting a reference to the button that
// sent this event:
JButton button = (JButton)e.getSource();
if (downuptracker[currentframenumber].equals(true)) {
// Colapse frame here and change icon
// Since DownUpButton has been declared as a
// member variable in class scope this reference
// to "DownUpButton" will always refer/point to
// the last instance created.
//DownUpButton.setText("New Icon here");
button.setText("New Icon here");
downuptracker[currentframenumber] = false;
}else{
// Expand frame here and change icon
//DownUpButton.setText("Old Icon here");
button.setText("Old Icon here");
downuptracker[currentframenumber] = true;
}
}
});
desk.add(iframe);
iframe.moveToFront();
}
scrollpane.setViewportView(desk);
frame.add(scrollpane);
// scrollpane.setVisible(true);
frame.setSize(800,600);
frame.setVisible(true);
}
}