Caly kod otwierania okna
[code]
public void createInternalFrame(final BufferedImage im, String t)
{
iframe = new JInternalFrame(t,
true,//zm rozm
true,//moz zamk
true,//max
true);//zw do ikony
im.getGraphics().drawImage(img, 0, 0, null);
JPanel panel = new
JPanel()
{
public void paintComponent(Graphics g)
{
if (image != null)
g.drawImage(image, 0, 0, null);
}
};
JScrollPane imageScrollPanel = new JScrollPane();
panel.setPreferredSize(new Dimension(256,256));
imageScrollPanel.setSize(500,500);
imageScrollPanel.setViewportView(panel);
iframe.getContentPane().add(imageScrollPanel, BorderLayout.CENTER);
desktop.add(iframe);
// dodaje obiekt nasluchujacy zamkniecie ramki
iframe.addVetoableChangeListener(new
VetoableChangeListener()
{
public void vetoableChange(PropertyChangeEvent zdarzenie)
throws PropertyVetoException
{
String name = zdarzenie.getPropertyName();
Object value = zdarzenie.getNewValue();
//sprawdza proby zamkniecia ramki
if(name.equals("closed")&&value.equals(true))
{
//prosi o potwierdznie zamkniecia
int result = JOptionPane.showInternalConfirmDialog(
iframe,"Ok to close?","Select an Option",JOptionPane.YES_NO_OPTION);
// jesli nie zglasza veto
if(result != JOptionPane.YES_OPTION)
throw new PropertyVetoException("User canceled close",zdarzenie);
}
}
});
//ustala pozycje ramki
int width = desktop.getWidth()/2;
int height = desktop.getHeight()/2;
iframe.reshape(nextFrameX, nextFrameY, width, height);
iframe.show();
//wybor ramki moze byc zawetowany
try
{
iframe.setSelected(true);
}
catch (PropertyVetoException e)
{}
}
[/code]