如何使按钮以相关语言打开框架?

时间:2018-03-17 16:57:16

标签: java jframe actionlistener multilingual

我有两个类,每个类都有JFrame。

第一帧包含两个按钮,它们应该以适当的语言打开下一帧。我的任务是:我打开第一帧(启动程序),我想选择英语,我点击带有“英文”标签的按钮,它会用程序打开下一帧。所有标签,所有按钮均为英文。

当我希望它在例如法语,我在第一帧中点击法语按钮,第二帧用法语

中的所有标签和按钮打开

所以,我的问题是:如何将动作与单击按钮结合使用,并以适当的语言打开框架?

目前,所有按钮都使用一种语言打开相同的框架。 以下是我的第一帧代码示例,“View”是下一个类中的下一个JFrame视图:

public class StartFrame extends JFrame {
    JButton button1 = new JButton(new ImageIcon(((new ImageIcon("flag.png")).getImage()).getScaledInstance(100, 75, java.awt.Image.SCALE_SMOOTH)));
    JButton button2 = new JButton(new ImageIcon(((new ImageIcon("flag2.jpg")).getImage()).getScaledInstance(100, 75, java.awt.Image.SCALE_SMOOTH)));    
    public StartFrame() {
        setSize(480,360);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLayout(new GridLayout(2,1));
        JPanel panel2 = new JPanel();

        add(panel2);
        panel2.setLayout(null);
        panel2.setBackground(Color.white);
        panel2.setLayout(new FlowLayout());
        button1.setPreferredSize(new Dimension(100, 75));
        button2.setPreferredSize(new Dimension(100, 75));

        panel2.add(button1);
        panel2.add(button2);
        panel2.add(button3);

        button1.addActionListener (new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                View f = new View();
                f.setVisible(true);
                f.setLocationRelativeTo(null);  
                dispose();  
            }           
        });     
        button2.addActionListener (new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                View en = new View();
                en.setVisible(true);
                en.setLocationRelativeTo(null); 
                dispose();  
            }           
        });         
    }

    public static void main(String[] args) {
        StartFrame frame = new StartFrame();
        frame.setVisible(true);
        frame.setLocationRelativeTo(null);      
    }
}

1 个答案:

答案 0 :(得分:0)

您可以向班级language添加View字段。然后,在您的动作侦听器上,您可以更改该字段的值:

button1.addActionListener (new ActionListener(){
    public void actionPerformed(ActionEvent e) {
        View f = new View();
        f.setLanguage("French");
        f.setVisible(true);
        f.setLocationRelativeTo(null);  
        dispose();  
    }           
});
button2.addActionListener (new ActionListener(){
    public void actionPerformed(ActionEvent e) {
        View en = new View();
        en.setLanguage("English");
        en.setVisible(true);
        en.setLocationRelativeTo(null); 
        dispose();  
    }           
});