Выравнивание JButton в JFrame - PullRequest
0 голосов
/ 29 января 2012

Я делаю латинский переводчик с использованием JFrame на Java.Вот моя проблема;У меня есть кнопка «Выход», которая закрывает программу;это не имеет значения, но что я не могу контролировать его выравнивание (или любой другой компонент).Я пытался использовать quit.setAlignmentY(BOTTOM_ALIGNMENT); в надежде, что это выровняет его по нижней части страницы, но ничего не изменилось.Некоторая помощь здесь, пожалуйста?В случае, если кому-то это нужно, вот код:

    public class Main extends JFrame{  
        private static JLabel label, result;  
        private static JTextField english;  
        private static JButton quit;  
        private static String originalResult = "Translated to pig latin: ";  
        private static ArrayList<String> beginningSymbols = new ArrayList<>();  
        private static ArrayList<String> endingSymbols = new ArrayList<>();  
        //prompt for string to translate, display final result  
        public Main(){  
            super("Pig Latin Translator");  
            setLayout(new FlowLayout());  
            setVisible(true);  
            setSize(600, 300);  
            setDefaultCloseOperation(EXIT_ON_CLOSE);    
            translatingHandler th = new translatingHandler();  
            label = new JLabel("Enter a phrase to translate into pig latin, then press enter:");  
            english = new JTextField(15);  
            result = new JLabel(originalResult);  
            quit = new JButton("Quit program");  
            english.addActionListener(th);  
            quit.addActionListener(th);  
            quit.setAlignmentY(BOTTOM_ALIGNMENT);  
            add(label);  
            add(english);  
            add(quit);  
            add(result);  
            english.requestFocus();  
        }  

        public static void main(String[] args){  
            new Main();  
        }
...
}

Я пытаюсь выровнять JButton, чтобы выровнять его по нижней части страницыСпасибо!

Ответы [ 2 ]

1 голос
/ 30 января 2012

На самом деле вы используете FlowLayout.Если вы посмотрите на учебные пособия FlowLayout , то упомянуто, что

Класс FlowLayout помещает компоненты в ряд, размер которого соответствует их предпочтительному размеру.Если горизонтальное пространство в контейнере слишком мало, чтобы поместить все компоненты в одну строку, класс FlowLayout использует несколько строк.Если контейнер шире, чем необходимо для ряда компонентов, строка по умолчанию центрируется по горизонтали внутри контейнера.

Если вы настаиваете на использовании FlowLayout, выровняйте свои компоненты.

В любом случае взгляните на Использование менеджеров по расположению .Для вашей задачи подходящими менеджерами компоновки будут BorderLayout.

Но если вам нужно что-то очень гибкое, используйте GridBagLayout или MigLayout , но они немного сложны в использовании.

Так как @HovercraftFullOfEels предложил избегать их.

1 голос
/ 30 января 2012

Добро пожаловать в запутанный мир Java Swing. Вы, вероятно, хотите заглянуть в менеджеры макетов. В частности, BorderLayout может представлять интерес.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...