Java-приложение не отвечает на изменения кода - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь реализовать простой интерфейс в Java, но он не реагирует на изменения кода, например, установка нового местоположения для поля со списком не изменяет его местоположение. Мой код:

public class Interfata extends JFrame
{
    static JFrame window= new JFrame("Aplicatie bancara");
    static JButton persoana_button= new JButton("PERSOANE");
    static JButton cont_button= new JButton("CONTURI");
    public static void main( String[] args )
    {

        window.setBounds(10, 10, 300, 200);
        JPanel panel_main= new JPanel();
        window.add(panel_main);

        cont_button.setBounds(90, 150, 100, 70);
        panel_main.add(cont_button);
        cont_button.addActionListener(new ActionListener(){ 
            public void actionPerformed(ActionEvent arg0) { 
                 JFrame view = new JFrame("Accounts");
                 JPanel pane= new JPanel();
            String[] account_type=
                {"savings", "spending"};
            JComboBox petList = new JComboBox(account_type);
            petList.setSelectedIndex(1);
            petList.addActionListener(new ActionListener()
                    {
                public void actionPerformed(ActionEvent arg0) {
                    // TODO Auto-generated method stub

                }
                    });
            petList.setSize(50, 50);
            petList.setLocation(400,320);   
                pane.add(petList);
                view.setDefaultCloseOperation(view.DISPOSE_ON_CLOSE);
                view.setBounds(10,10,400,400);
                view.add(pane);
                view.setVisible(true);

            }});


        window.setVisible(true);

Как показано в коде, мое окно настроено на размер, приблизительно, 400x400, и я установил в поле со списком значение 400, 320, которое должно размещать его за рамкой, но оно застряло в середине. enter image description here

Я использую затмение неоновым кислородом и кодирую в проекте Maven. сразу после изменения моего кода я получил это сообщение:

некоторые изменения кода не могут быть оперативно заменены на работающую виртуальную машину

Я попытался перезапустить Eclipse, изменить местоположение рабочего пространства и полностью начать новый проект. Однако это все еще не будет двигаться.

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Это в основном относится к LayoutManager:

  1. Вы добавили поле со списком на панель
  2. JPanel имеет макет по умолчанию как FlowLayout
  3. FlowLayout добавляет элементы управления по умолчанию с выравниванием по центру контейнера.
  4. FlowLayout не соответствует setLocation(x,y), следовательно, вы не видите никакого эффекта

С вашим существующим кодом, если вы установите макет pane's на null т.е. pane.setLayout(null), вы обязательно получите желаемый результат, однако нулевой макет не рекомендуется . Возможно, вы захотите использовать другие макеты SpringLayout или GroupLayout, но для этого потребуется интегрированная среда разработки, так как ручное кодирование будет проблематичным.

0 голосов
/ 10 мая 2018

У вас есть работающая копия вашей программы, которая была запущена до того, как вы внесли изменения. Эта текущая копия не является тем же процессом, что и ваша Eclipse IDE.

Вам нужно остановить эту текущую копию, а затем повторно запустить новую копию, которая скомпилирована на диске, но по той или иной причине не может быть исправлена ​​в копию, которую вы уже запустили.

Чтобы найти рабочую копию, вам может понадобиться использовать список процессов операционной системы и найти правильную программу (обычно содержащую слово «java» в командной строке программы) для завершения.

После того, как вы убьете эту программу, вы сможете перезапустить ее, а затем увидите изменения, сохраненные на диске в вашей последней успешной компиляции.

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