We need you!


The IzPack documentation needs work, and you are invited to edit it!

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


Attribute NameDescriptionDefault Value
resizableIndicates whether the window size can be changed or not.falseno
widthSets the initial window width in pixels.600
heightSets the initial window height in pixels.480


Code Block
<guiprefs width="600" height="480" resizable="no">
  <modifier key="useButtonIcons" value="no"/>
  <modifier key="useLabelIcons" value="no"/>
  <modifier key="labelGap" value="2"/>
  <modifier key="layoutAnchor" value="NORTHWEST"/>
  <modifier key="useHeadingPanel" value="yes"/>
  <modifier key="headingImageOnLeft" value="yes"/>
  <modifier key="headingLineCount" value="1"/>
  <modifier key="headingFontSize" value="1.5"/>
  <modifier key="headingBackgroundColor" value="0x00ffffff"/>
  <modifier key="headingPanelCounter" value="text"/>
  <modifier key="headingPanelCounterPos" value="inHeading"/>











Valid values are NORTHWEST, NORTHEAST,????
















Modifying the Language Selection Dialog

The language selection dialog appears at the start of an installer the installation before the first panel occurs.

Additionally In additional to the picture in the language selection dialog, it is possible to modify flags and the way the language name is shown:

  • 'useFlags': possible Possible are "yes" or "no". Default is "yes". If it is set to "no", no flag will be displayed in the language selection dialog. For "no" it is recommended to define also 'langDisplayType' other then "iso3".
  • 'langDisplayType': possible Possible values are "iso3", "native" and "default". Default is "iso3". With "iso3" the text for a language will be displayed as ISO 639-2:1998 code. With "native" the notation of the language will be used if possible, else the notation of the default locale. Using "default" will be presented the language in the notation of the default locale of the VM.


There are some graphic elements and behavior which are preferred by some people and deprecate by other. The following keys are related to the whole installation (all panels).

  • 'useButtonIcons': possible are "yes" or "no". Default is "yes". If it is set to "no", all buttons which are created via the ButtonFactory contains no icon also a icon id was submitted. Directly created buttons are not affected.
  • 'useLabelIcons': possible Possible are "yes" or "no". Default is "yes". If it is set to "no", all labels which are created via the LabelFactory contains no icon also a icon id was submitted. Directly created labels are not affected.
  • 'labelFontSize': A float value used as a multiplier for the font size on labels created via the LabelFactory and IzPanel. Directly created labels are not affected.
  • 'layoutAnchor': This is the layout anchor for IzPanels. Valid are "NORTH", "NORTHWEST", "SOUTHWEST", "SOUTH" and "CENTER". Only panels which are using the layout helper of IzPanels are supported. These are not all standard panels. At developing custom panels it is recommended to use the layout helper with an IzPanelLayout. Note: The anchor definition will be used for all panels!
  • Gaps: there There are a number of defined different gaps between different components of a IzPanel if using that can be applied to a IzPanelLayout. The gaps can be set also via the element '<modifier>' of '<guiprefs>'. It is possible to declare different values for X and Y axis. This will be determined in the key word name. X Gaps are insert after Y gaps under the control for which the gap was declared. Following key words are defined:
    • 'labelXGap |labelYGap': The gap in pixel pixels between two labels in X or Y direction.
    • 'textXGap | textYGap': The gap in pixel pixels between two text fields.
    • 'controlXGap | controlYGap': The gap in pixel pixels between two controls other than label or textfield.
    • 'paragraphYGap': The gap in pixel pixels for a paragraph. A paragraph will be created in the panel source for controls which should be separated. paragraphXGap is declared, but not used.???
    • 'labelToTextXGap | labelToTextYGap': The gap in pixel pixels between a label (left or top) and a text field (right or bottom).
    • 'labelToControlXGap | labelToControlYGap': The gap in pixel pixels between a label (left or top) and a control other than a label or a textfield.
    • 'textToLabelXGap | textToLabelYGap': The gap in pixel pixels between a text field (left or top) and a label.
    • 'controlToLabelXGap | controlToLabelYGap': The gap in pixel pixels between a control other than a label or a text field and a label.
    • 'controlToTextXGap | controlToTextYGap': The gap in pixel pixels between a control other than a label or a text field and a text field.
    • 'textToControlXGap | textToControlYGap': The gap in pixel pixels between a text field and a control other than a label or a text field .
    • 'firstYGap': The gap in pixel pixels between the top border and the first control.
    • 'fillerNXGap | fillerNYGap': The gap in pixel pixels created by the layout manager . Filler to do what???. Fillers are used by some panels. N is a number between 1 and 5 to allow to use specify a different filler e.g. filler3XGap or filler1YGap.
    • 'allXGap | allYGap': The gap in pixel pixels between all controls in X or Y direction. If this is declared, this is the default for all gaps for which no own declaration exists gets this value. If a gap has an own declaration this will be used insteadhas been defined.
  • 'layoutYStretchType | layoutXStretchType ': the IzPanelLayout manager allows to declare This is the type of stretch that will be applied. The IzPanelLayout manager permits stretch factors for controls to be specified. This means, that a control will be stretched if there is place space in the line. The amount of stretching will be determined by the stretch factor. But what to do if the hole whole stretch factor for a line or column is not 1.0? To determine this these settings are exist. Valid values are "RELATIVE", "ABSOLUTE" and "NO". With "NO" no stretch will be performed. with "RELATIVE" the values are normalized, with "ABSOLUTE" the
    • RELATIVE The values will be normalized ????
    • ABSOLUTE  The values will be used as they are
    (may be a part
    • . A part of the line will be clipped if the sum is greater than 1.0
    • .
    • NO No stretch will be performed. 
  • layoutFullLineStretch | layoutFullColumnStretch': as described there There are controls which should be stretched. Beside fixed values there are the symbolic values FULL_LINE_STRETCH and FULL_COLUMN_STRETCH which are computed at layout. E.g. MultiLineLabels has this stretch factor for x direction. But what to do if a centered layout is chosen? With a control like this the lines will be stretch to the hole size. With this settings it can be changed. E.g. a factor of 0.7 creates a nice centered layout. The default is 1.0, valid are 0.0 up to 1.0.

Alternative Frame Title

It is possible to use an alternatively alternative frame title. Normally the title has the aspect is "IzPack - Installation of " + '$APP_NAME'. If the langpack key 'installer.reversetitle' is defined, the value of that key will be used instead of the key 'installer.title'. There is no string added, but it is possible to use IzPack variables. The third heading example contains such a alternatively frame title. It is only possible to use predefined variables like '$APP_NAME' because the title will be created before the frame will be shown. It is common to use the name of the installation toolkit in the frame title. 

Using a Separated Heading Panel

Some standard panels have headings (e.g. ShortcutPanel). These headings are integrated in the IzPanel. In opposite to this following heading will be displayed in a separated panel potential for all panels with the same design.(not parsable in English) There is no need to modify existent java classes else existing Java classes. The declaration of some key/value pairs are is enough.

There can be one real head and zero or more info lines. The headline will be written bold, the font size can be changed. Info lines will be indented and written with the normal used font. The heading message has to be written into the langpack (or custom langpack) file with the key '<panel class name>.headline'. Examples can be seen in eng.xml. May be the entries for standard panels are not present in other languages. Messages for info lines have the key '<panel class name>.headinfo<info line number>'. First info line has number zero. If no or empty headline messages will be declared in the chosen language no heading panel will be shown. This behavior can be used to suppress heading for special panels.



Code Block
  <res id="Heading.image" src="[my path to the image in the source tree]"/>

There are some guiprefs modifier keys used to use and modify heading (see above). Additionally it is possible to count the general not hidden panels in the heading or navigation panel.

  • 'useHeadingPanel': General switch for heading. If this key does not exist or does not have the value "yes" no heading panel will be shown.
  • 'headingImageOnLeft': Option to allow displaying the heading image on the left of the header instead of the default (right side). Only valid if heading panel is used.
  • 'useHeadingForSummary': In the language files there are entries for the heading text ('Panel name.headline') and the summary caption ('Panel name.summaryCaption'). If this modifier is set to "yes", the text of the heading will be also used for the summary caption.
  • 'headingLineCount': Number of heading lines. If no info lines should be shown the value should be one (not zero).
  • 'headingFontSize': A float value used as multiplier for the standard font size.
  • 'headingBackgroundColor': Background color of the heading panel as integer. Often used is 0x00ffffff (white).
  • 'headingForegroundColor': Font color of the heading panel as integer. Often used is 0x00ffffff (white).
  • 'headingPanelCounter': Draw a panel counting. Possible values are "text" or "progressbar". inHeading the progressbar will be not the best choice.
  • 'headingPanelCounterPos': Declares where the counter will be shown. Possible are "inHeading" or "inNavigationPanel". If "inNavigationPanel" is chosen, the panel counter can be used also no heading was selected.
  • headingImageBorderSize Decalres the border size around the heading panel

Example: Modifiers to create an IzPack installation with heading, no button and label icons and a panel text counter in the heading panel:


Example: Changed resources and langpack keys to create IzPack installation with alternatively an alternative frame title, a heading, no button and label icons and a text counter in the heading panel.



Code Block
<guiprefs width="640" height="480" resizable="no">
  <modifier key="useButtonIcons" value="no"/>
  <modifier key="useLabelIcons" value="no"/>
  <modifier key="layoutAnchor" value="NORTHWEST"/>
  <modifier key="labelGap" value="2"/>
  <modifier key="useHeadingPanel" value="yes"/>
  <modifier key="headingLineCount" value="1"/>
  <modifier key="headingFontSize" value="1.5"/>
  <modifier key="headingBackgroundColor" value="0x00ffffff"/>
  <modifier key="headingPanelCounter" value="progressbar"/>
  <modifier key="headingPanelCounterPos" value="inNavigationPanel"/>
Example: Don't show pack size in PacksPanel.


The PacksPanel dialog supports the modifier doNotShowPackSizeColumn which hides the third column showing the size of each pack. With doNotShowPackSizeColumn set to true, the third column will not be shown. The This does not affect the display of the required size of all packs is still shown with this setting.

The required size can be hidden by setting the doNotShowRequiredSize to true.

 Example:Don't show pack size in PacksPanel.
Code Block
<guiprefs width="640" height="480" resizable="no">
   <modifier key="doNotShowPackSizeColumn" value="true"/>
   <modifier key="doNotShowRequiredSize" value="yes"/>

The PacksPanel will not show the column with the sizes of each pack, but will show the total required space.


Alternative Cancel Dialog

The cancel dialog will be shown if the cancel button or the close button of the frame was is pushed.

In the standard dialog, the title contains the question and the confirmation message an affirmation. In .

Often, in other dialogs often , the title is a common heading and the question will be called in the dialog as a message. The standard behavior will be modified if the messages 'installer.quit.reversemessage' and ' or installer.quit.reversetitleare' are declared.

In the resource files <ISO3>.xml or CustomLangpack.xml_<ISO3>, add

Code Block
  <str id="installer.quit.reversemessage" txt="Are you sure you want to cancel installation?"/>
  <str id="installer.quit.reversetitle" txt="$APP_NAME $APP_VER"/>


Adding a Splash Page

The <splash> element specifies the path to the image to be used a a splash key modifier is used to indicate that the installer should show a splash screen. The path is relative to the installation root
The value of the splash key modifer represents the minimum amount of time to show the splash screen in milliseconds.
The image should be defined as a resource with the id of Splash.image.
The image can be any bitmap format such as png, jpg, jpeg, gif or bmp.
Note: Older installers using the <splash> tag will find that their splash image no longer appears. Please adapt this new syntax.

Code Block
titleSample IzPack installation description
<installation version="5.0"
              xsi:schemaLocation="http://izpack.org/schema/installation http://izpack.org/schema/5.0/izpack-installation-5.0.xsd">


  <guiprefs width="800" height="600" resizable="no">
    <splash>images/peas_load.gif</splash>	 <!-- Show the splashScreen for a minimum of 1000 milliseconds -->	
	 <modifier key="useSplashScreen" value="1000"/>	

    <!--Define the splash screen image as a reading just like a heading image -->
    <res id="Splash.image" src="images/splash.png"/>

<laf> - Look and Feel


AttributePushingPixels Theme Name











Please consult httpsThe Substance web site has been taken off line but is still available in the Substance project source code found at.http://substance.dev.java.net/docsprojects/skins/toneddown.html for a substance/sources/svn/show/trunk/www.

To view the gallery of the different toned-down themes, you need to check out the source code and then navigate to the www/docs/skins/toneddown.html file from your browser..

Operating System Restrictions