//-------------------------
// SodaMachineWindowMain class
//-------------------------
import javax.swing.*;
class SodaMachineWindowMain extends JFrame
{
public static void main( String[] args )
{
JFrame sodaMachineWindow = new JFrame( "Soda Machine Window" );
sodaMachineWindow.getContentPane().add( new SodaMachineWindow( ) );
sodaMachineWindow.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
sodaMachineWindow.pack( ); // an alternative is to use setSize( )
sodaMachineWindow.setResizable( false );
sodaMachineWindow.show( );
}
}
//-------------------------
// SodaMachineWindow class
//-------------------------
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
class SodaMachineWindow extends JPanel
{
public static final int SODA_MACHINE_WINDOW_WIDTH = 886;
public static final int SODA_MACHINE_WINDOW_HEIGHT = 517 private ImagePanel imagePanel = new ImagePanel( );
private ComponentPanel componentPanel = new ComponentPanel( );
SodaMachineWindow( )
{
this.setBackground( Color.YELLOW );
this.add( componentPanel );
this.add( imagePanel );
}
public Dimension getPreferredSize( )
{
return new Dimension( SODA_MACHINE_WINDOW_WIDTH, SODA_MACHINE_WINDOW_HEIGHT );
}
public Dimension getMinimumSize( )
{
return getPreferredSize( );
}
}
meaning create a constructor in component Panel pass the image panel...
i.e. ConstructionPanel p = new ConstructionPanel(new ImagePanel i)
then changes to the image panel can be made in the Main be creating another ImagePanel with a reference...
ImagePanel P = p.getImagePanel();
///the contructionpanel class
ImagePanel p;
ConstructionPanel (ImagePanel p)
{
this.p = p;
}