Popular Posts
JSON Foramter <html> <head>     <title>JSON Formater</title>     <style type="text/css">     body{         margin:... Wrong text encoding while Jsoup parse document While page encoding is different with content type encoding declaration. Jsoup will get wrong text decode content. To avoid this problem, As... Asynchronous and deferred JavaScript execution explained Normal execution <script> This is the default behavior of the <script> element. Parsing of the HTML code pauses while the scr...
Stats
SwiXml - Layout

BorderLayout

BorderLayoutPane.xml
<?xml version="1.0" encoding="UTF-8"?>
<panel layout="BorderLayout">
    <button constraints="BorderLayout.NORTH" text="North" action="btn_Click" />
    <button constraints="BorderLayout.EAST" text="East" action="btn_Click" />
    <button constraints="BorderLayout.WEST" text="West" action="btn_Click" />
    <button constraints="BorderLayout.SOUTH" text="South" action="btn_Click" />
    <button constraints="BorderLayout.CENTER" text="Center" action="btn_Click" />
</panel>
BorderLayoutPane.java
package swixml.sample;

import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

import org.swixml.SwingEngine;

public class BorderLayoutPane extends JPanel {

    public Action btn_Click = new AbstractAction() {
        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), ((JButton) e.getSource()).getText());
        }
    };

    public BorderLayoutPane() {
        // TODO Auto-generated constructor stub
        try {
            new SwingEngine(this).insert("swixml/sample/BorderLayoutPane.xml", this);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InstantiationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (UnsupportedLookAndFeelException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("SwiXML - BorderLayout");

        frame.setContentPane(new BorderLayoutPane());
        frame.pack();

        Dimension sc = Toolkit.getDefaultToolkit().getScreenSize();
        frame.setLocation((sc.width - frame.getWidth()) / 2, (sc.height - frame.getHeight()) / 2);
        frame.setVisible(true);
    }

}

BoxLayout

BoxLayoutPane.xml
<?xml version="1.0" encoding="UTF-8"?>
<panel>
    <hbox>
        <vbox>
            <button text="A1" />
            <glue />
            <button text="A2" />
            <button text="A3" />
            <button text="A4" />
        </vbox>
        <vbox border="TitledBorder(A Titled Border)">
            <button text="B1" />
            <button text="B2" />
            <button text="B3" />
            <glue />
            <button text="B4" />
            <hbox>
                <button text="C1" />
                <button text="C2" />
                <button text="C3" />
            </hbox>
        </vbox>
    </hbox>

</panel>
BoxLayoutPane.java
package swixml.sample;

import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

import org.swixml.SwingEngine;

public class BoxLayoutPane extends JPanel {

    public BoxLayoutPane() {
        // TODO Auto-generated constructor stub
        try {
            new SwingEngine(this).insert("swixml/sample/BoxLayoutPane.xml", this);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InstantiationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (UnsupportedLookAndFeelException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("SwiXML - BoxLayout");

        frame.setContentPane(new BoxLayoutPane());
        frame.pack();

        Dimension sc = Toolkit.getDefaultToolkit().getScreenSize();
        frame.setLocation((sc.width - frame.getWidth()) / 2, (sc.height - frame.getHeight()) / 2);
        frame.setVisible(true);
    }

}

CardLayout

CardLayoutPane.xml
<?xml version="1.0" encoding="UTF-8"?>
<panel layout="CardLayout">
    <panel constraints="view1" layout="BorderLayout">
        <label text="View one" foreground="FF0000" font="bold-30" constraints="BorderLayout.CENTER" />
        <button text="Change View" constraints="BorderLayout.SOUTH" action="btnViewChange_Click" />
    </panel>
    <panel constraints="view2" layout="BorderLayout">
        <label text="View two" foreground="00FF00" font="bold-30" constraints="BorderLayout.CENTER" />
        <button text="Change View" constraints="BorderLayout.SOUTH" action="btnViewChange_Click" />
    </panel>
    <panel constraints="view3" layout="BorderLayout">
        <label text="View three" foreground="0000FF" font="bold-30" constraints="BorderLayout.CENTER" />
        <button text="Change View" constraints="BorderLayout.SOUTH" action="btnViewChange_Click" />
    </panel>
</panel>
CardLayoutPane.java
package swixml.sample;

import java.awt.CardLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

import org.swixml.SwingEngine;

public class CardLayoutPane extends JPanel {

    public Action btnViewChange_Click = new AbstractAction() {
        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            CardLayout layout = (CardLayout) getLayout();
            layout.next(CardLayoutPane.this);
        }
    };

    public CardLayoutPane() {
        // TODO Auto-generated constructor stub
        try {
            new SwingEngine(this).insert("swixml/sample/CardLayoutPane.xml", this);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InstantiationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (UnsupportedLookAndFeelException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("SwiXML - CardLayout");

        frame.setContentPane(new CardLayoutPane());
        frame.pack();

        Dimension sc = Toolkit.getDefaultToolkit().getScreenSize();
        frame.setLocation((sc.width - frame.getWidth()) / 2, (sc.height - frame.getHeight()) / 2);
        frame.setVisible(true);
    }

}

FlowLayout

FlowLayoutPane.xml
<?xml version="1.0" encoding="UTF-8"?>
<panel layout="FlowLayout">
    <label text="姓名" />
    <textfield id="txtName" columns="25" />
    <button id="btnSubmit" text="確定" action="btnSubmit_Click" />
</panel>
FlowLayoutPane.java
package swixml.sample;

import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

import org.swixml.SwingEngine;

public class FlowLayoutPane extends JPanel {

    public Action btnSubmit_Click = new AbstractAction() {
        @Override
        public void actionPerformed(ActionEvent e) {
            JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), //
                    String.format("Hi, %s!", txtName.getText()));
        }
    };

    JTextField txtName;
    JButton btnSubmit;

    public FlowLayoutPane() {
        // TODO Auto-generated constructor stub
        try {
            new SwingEngine(this).insert("swixml/sample/FlowLayoutPane.xml", this);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InstantiationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (UnsupportedLookAndFeelException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("SwiXML - FlowLayout");

        frame.setContentPane(new FlowLayoutPane());
        frame.pack();

        Dimension sc = Toolkit.getDefaultToolkit().getScreenSize();
        frame.setLocation((sc.width - frame.getWidth()) / 2, (sc.height - frame.getHeight()) / 2);
        frame.setVisible(true);
    }

}

GridBagLayout

GridBagLayoutPane.xml
<?xml version="1.0" encoding="UTF-8"?>
<panel layout="GridBagLayout">
    <button text="1">
        <gridbagconstraints gridx="0" gridy="0" fill="GridBagConstraints.BOTH" />
    </button>
    <button text="2">
        <gridbagconstraints gridx="1" />
    </button>
    <button text="3">
        <gridbagconstraints gridx="2" />
    </button>
    <button text="4 + 7">
        <gridbagconstraints gridx="0" gridy="1" gridheight="2" fill="GridBagConstraints.BOTH" />
    </button>
    <button text="5 + 6">
        <gridbagconstraints gridx="1" gridwidth="2" fill="GridBagConstraints.BOTH" />
    </button>
    <button text="8">
        <gridbagconstraints gridx="1" gridy="2" />
    </button>
    <button text="9">
        <gridbagconstraints gridx="2" gridy="2" />
    </button>
</panel>
GridBagLayoutPane.java
package swixml.sample;

import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

import org.swixml.SwingEngine;

public class GridBagLayoutPane extends JPanel {

    public GridBagLayoutPane() {
        // TODO Auto-generated constructor stub
        try {
            new SwingEngine(this).insert("swixml/sample/GridBagLayoutPane.xml", this);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InstantiationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (UnsupportedLookAndFeelException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("SwiXML - GridBagLayout");

        frame.setContentPane(new GridBagLayoutPane());
        frame.pack();

        Dimension sc = Toolkit.getDefaultToolkit().getScreenSize();
        frame.setLocation((sc.width - frame.getWidth()) / 2, (sc.height - frame.getHeight()) / 2);
        frame.setVisible(true);
    }

}

GridLayout

GridLayoutPane.xml
<?xml version="1.0" encoding="UTF-8"?>
<panel layout="GridLayout(3,3)">
    <button text="1" action="btn_Click" />
    <button text="2" action="btn_Click" />
    <button text="3" action="btn_Click" />
    <button text="4" action="btn_Click" />
    <button text="5" action="btn_Click" />
    <button text="6" action="btn_Click" />
    <button text="7" action="btn_Click" />
    <button text="8" action="btn_Click" />
    <button text="9" action="btn_Click" />
</panel>
GridLayoutPane.java
package swixml.sample;

import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

import org.swixml.SwingEngine;

public class GridLayoutPane extends JPanel {

    public Action btn_Click = new AbstractAction() {
        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            JOptionPane.showMessageDialog(JOptionPane.getRootFrame(), ((JButton) e.getSource()).getText());
        }
    };

    public GridLayoutPane() {
        // TODO Auto-generated constructor stub
        try {
            new SwingEngine(this).insert("swixml/sample/GridLayoutPane.xml", this);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InstantiationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (UnsupportedLookAndFeelException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("SwiXML - GridLayout");

        frame.setContentPane(new GridLayoutPane());
        frame.pack();

        Dimension sc = Toolkit.getDefaultToolkit().getScreenSize();
        frame.setLocation((sc.width - frame.getWidth()) / 2, (sc.height - frame.getHeight()) / 2);
        frame.setVisible(true);
    }

}
reference : LayoutConverter