本文主要是介绍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(); } }
}
这篇关于Swing之 实现阿拉伯语从右到左界面风格的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!