Swing之 实现阿拉伯语从右到左界面风格

Swing中控件可以实现水平翻转,有看到过阿拉伯国家软件的就知道他们的写作习惯是从右到左的形式,SUN公司为了方便不同客户为Swing控件提供两个实现翻转效果的方法
applyComponentOrientation(ComponentOrientation orientation)
          设置此组件及其包含的所有组件的 ComponentOrientation 属性。
setComponentOrientation(ComponentOrientation o)
          设置语言敏感的方向,用于排序此组件内的元素或文本。


下面的代码建议在JDK1.6上面运行,布局采用1.6的类
import java.awt.ComponentOrientation;   
import java.awt.event.ActionEvent;   
import java.awt.event.ActionListener;   
  
public class NewJFrame extends javax.swing.JFrame {   
  
    public NewJFrame() {   
        initComponents();   
        jButton1.setActionCommand("jbutton1");   
        jButton1.addActionListener(new JButton_ActionListener(this));   
        jButton2.setActionCommand("jbutton2");   
        jButton2.addActionListener(new JButton_ActionListener(this));   
    }   
  
    // <editor-fold defaultstate="collapsed" desc="Generated Code">   
    private void initComponents() {   
  
        jComboBox1 = new javax.swing.JComboBox();   
        jButton1 = new javax.swing.JButton();   
        jButton2 = new javax.swing.JButton();   
        jCheckBox1 = new javax.swing.JCheckBox();   
        jRadioButton1 = new javax.swing.JRadioButton();   
        jScrollPane1 = new javax.swing.JScrollPane();   
        jTree1 = new javax.swing.JTree();   
  
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);   
  
        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));   
  
        jButton1.setText("jButton1");   
  
        jButton2.setText("jButton2");   
  
        jCheckBox1.setText("jCheckBox1");   
  
        jRadioButton1.setText("jRadioButton1");   
  
        jScrollPane1.setViewportView(jTree1);   
  
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());   
        getContentPane().setLayout(layout);   
        layout.setHorizontalGroup(   
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)   
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()   
                .addGap(22, 22, 22)   
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)   
                    .addComponent(jRadioButton1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 174, Short.MAX_VALUE)   
                    .addComponent(jCheckBox1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 174, Short.MAX_VALUE)   
                    .addComponent(jComboBox1, javax.swing.GroupLayout.Alignment.LEADING, 0, 174, Short.MAX_VALUE))   
                .addGap(29, 29, 29)   
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)   
                    .addGroup(layout.createSequentialGroup()   
                        .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)   
                        .addGap(26, 26, 26)   
                        .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE))   
                    .addComponent(jScrollPane1))   
                .addGap(234, 234, 234))   
        );   
        layout.setVerticalGroup(   
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)   
            .addGroup(layout.createSequentialGroup()   
                .addContainerGap()   
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)   
                    .addComponent(jButton2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)   
                    .addComponent(jButton1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)   
                    .addComponent(jComboBox1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 37, Short.MAX_VALUE))   
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)   
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)   
                    .addGroup(layout.createSequentialGroup()   
                        .addComponent(jCheckBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE)   
                        .addGap(18, 18, 18)   
                        .addComponent(jRadioButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE))   
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 250, javax.swing.GroupLayout.PREFERRED_SIZE))   
                .addContainerGap(86, Short.MAX_VALUE))   
        );   
  
        pack();   
    }// </editor-fold>   
  
    public static void main(String args[]) {   
  
        final NewJFrame newJFrame = new NewJFrame();   
  
        java.awt.EventQueue.invokeLater(new Runnable() {   
            public void run() {   
                newJFrame.setVisible(true);   
            }   
        });   
    }   
  
    public void jButton1_ActionListener()   
    {   
       this.getContentPane().applyComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);   
       this.getRootPane().updateUI();   
    }   
  
    public void jButton2_ActionListener()   
    {   
        this.getContentPane().applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);   
        this.getRootPane().updateUI();   
    }   
  
    // Variables declaration - do not modify   
    private javax.swing.JButton jButton1;   
    private javax.swing.JButton jButton2;   
    private javax.swing.JCheckBox jCheckBox1;   
    private javax.swing.JComboBox jComboBox1;   
    private javax.swing.JRadioButton jRadioButton1;   
    private javax.swing.JScrollPane jScrollPane1;   
    private javax.swing.JTree jTree1;   
    // End of variables declaration   
  
}   
  
class JButton_ActionListener implements ActionListener   
{   
    private NewJFrame newJFrame;   
    public JButton_ActionListener(NewJFrame newJFrame)   
    {   
        this.newJFrame = newJFrame;   
    }   
    public void actionPerformed(ActionEvent e) {   
        if("jbutton1".equals(e.getActionCommand()))   
        {   
            this.newJFrame.jButton1_ActionListener();   
        }else if("jbutton2".equals(e.getActionCommand()))   
        {   
            this.newJFrame.jButton2_ActionListener();   
        }   
    }   
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值