Не отрисовывается панель в java

133
17 февраля 2018, 22:06

Есть 3 класса, PanelEntryWindow вызывается в FrameEntryWindow, в свою очередь FrameEntryWindow вызывается в Entry Window, а EntryWindow в Main. Проблема в следующем - при запуске программы не отображается панель с кнопками, текстовыми полями и лейблами.

Main

import View.EntryWindow;
public class Main {
public static void main(String[] args) {
    EntryWindow.startEntryWindow();
}
}

EntryWindow

package View;
import javax.swing.*;
public class EntryWindow extends JFrame {
 public static void startEntryWindow(){
    FrameEntryWindow.FrameEntryWindow();
}
}

FrameEntryWindow

package View;
import javax.swing.*;
public class FrameEntryWindow extends JFrame {
protected static JFrame jFrame = new FrameEntryWindow();
static JFrame FrameEntryWindow(){
    jFrame = new JFrame("My Data Base");
    jFrame.setSize(250, 350);
    jFrame.setLocationRelativeTo(null);
    jFrame.setResizable(false);
    jFrame.setVisible(true);
    jFrame.add(new PanelEntryWindow());
    jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    return jFrame;
}
}

PanelEntryWindow

package View;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class PanelEntryWindow extends JPanel {
private JLabel labelLogin = new JLabel("Login");
public JTextField inputLogin = new JTextField();
private JLabel labelPassword = new JLabel("Password");
public JTextField inputPassword = new JTextField();
public static JButton logInButton = new JButton("Login");
public static JButton newUserButton = new JButton("Create new user");
public PanelEntryWindow(){
    labelLogin.setBounds(50, 50, 100, 50);
    add(labelLogin);
    inputLogin.setBounds(50, 110, 150, 50);
    add(inputLogin);
    labelPassword.setBounds(50, 130, 100, 50);
    add(labelLogin);
    inputPassword.setBounds(50, 190, 150, 50);
    add(inputPassword);
    logInButton.setBounds(100, 230, 80, 50);
    add(logInButton);
    newUserButton.setBounds(50, 290, 200, 50);
    add(newUserButton);
}
}

Структура такая:

Answer 1

Проблема в корректировке размера для панели. Если в коде установишь главное окно resizable в true и растянешь окно - увидишь свою панель. Решение здесь простое - не устанавливать размер окна вручную, а использовать метод pack().

READ ALSO
Переделка программы из HSSF* в XSSF*

Переделка программы из HSSF* в XSSF*

По своей неопытности написал программу которая работает с загружаемом файлеxls, теперь хочу переделать её чтобы работала с

192
Java корпоративная проект

Java корпоративная проект

Ребят мне поставили задачу: написать корпоративную программу на JAVA рассчитанную на обмен данными по локальной сетиПрограмма должна быть...

127
FirebaseRecyclerAdapter не обновляет позицию в списке

FirebaseRecyclerAdapter не обновляет позицию в списке

Создал адаптер для Firebase+RecyclerViewв нем TextView и Button удалить

132