Hej gruppe,
jeg er stødt ind i et problem, jeg tror skyldes
JInternalFrames.
Programmet virker i jsdk 1.2.x, men ikke i 1.4.x.
Jeg har fundet et eksempel der laver samme fejl
i en af Deitel&Deitels bøger.
Når man prøver at få vist en JInternalFrame, sker
der intet.
Programmet ligger her i et selvudpakkende RAR arkiv:
http://home20.inet.tele.dk/noerrelund/filer/fig13_10.exe
Koden er her:
// Fig. 13.10: DesktopTest.java
// Demonstrating JDesktopPane.
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class DesktopTest extends JFrame {
public DesktopTest()
{
super( "Using a JDesktopPane" );
JMenuBar bar = new JMenuBar();
JMenu addMenu = new JMenu( "Add" );
JMenuItem newFrame = new JMenuItem( "Internal Frame" );
addMenu.add( newFrame );
bar.add( addMenu );
setJMenuBar( bar );
final JDesktopPane theDesktop = new JDesktopPane();
getContentPane().add( theDesktop );
newFrame.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent e ) {
JInternalFrame frame =
new JInternalFrame(
"Internal Frame",
true, true, true, true );
Container c = frame.getContentPane();
MyJPanel panel = new MyJPanel();
c.add( panel, BorderLayout.CENTER );
frame.setSize(
panel.getImageWidthHeight().width,
panel.getImageWidthHeight().height );
frame.setOpaque( true );
theDesktop.add( frame );
}
}
);
setSize( 500, 600 );
show();
}
public static void main( String args[] )
{
DesktopTest app = new DesktopTest();
app.addWindowListener(
new WindowAdapter() {
public void windowClosing( WindowEvent e )
{
System.exit( 0 );
}
}
);
}
}
class MyJPanel extends JPanel {
private ImageIcon imgIcon;
public MyJPanel()
{
imgIcon = new ImageIcon( "21.jpg" );
}
public void paintComponent( Graphics g )
{
imgIcon.paintIcon( this, g, 0, 0 );
}
public Dimension getImageWidthHeight()
{
return new Dimension( imgIcon.getIconWidth(),
imgIcon.getIconHeight() );
}
}
Jeg har indtil videre brugt flere timer sammen med
google, men kan desværre ikke finde noget specifikt
omkring mit problem.
Jeg håber I kan pege mig i den rigtige retning.
--
Mvh.
Mikael Nørrelund Andersen
Fjern 'removespamfilter' ved svar til email.