Некоторые сложнсти с использованием JTextField - Java
Формулировка задачи:
Имеется несколько проблем с использованием JTextField:
1) При создании объекта JTextField пропадают JLabel - ы (толи полностью попадают, толи становятся невидимыми не знаю...) при чем они находятся в другой панели.
2) Сам JTextField не выделяется на фоне панели в которую он вложен до тех пор, пока на него не кликнешь...
Код:
P.S Все вышеописанные проблемные элементы находятся внизу кода
Листинг программы
- public class Display{
- private Dimension windowSize = new Dimension((int)(Toolkit.getDefaultToolkit().getScreenSize().getWidth() / 100 * 66), (int)(Toolkit.getDefaultToolkit().getScreenSize().getHeight() / 100 * 66));
- final Color backcolorPanelHeader = new Color(0x1E1411);
- final Color backcolorPanelSearch = new Color(0xffdcaf);
- final Color backColorActivePanel = new Color(0x2B2216);
- final Color backColorNonActivePanel = new Color(0x95846D);
- final Color colorTextTab = new Color(0x9d7d46);
- final Font fontMain = new Font("Verdana", Font.BOLD, 14);
- private JFrame window;
- private JPanel panelHeader;
- private JPanel panelResultSearch;
- private JPanel panelRecipeText;
- private JPanel panelSearch;
- private JPanel panelTab;
- private JPanel panelFilter;
- private JPanel panelOptions;
- private JLabel labelFilter;
- private JLabel labelAddNew;
- private JTextField textAreaSearch;
- public void create(String title){
- window = new JFrame(title);
- window.setSize(windowSize);
- window.setLocationRelativeTo(null);
- window.setResizable(false);
- window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- window.setLayout(null);
- panelHeader = new JPanel(null);
- panelHeader.setLocation(0, 0);
- panelHeader.setVisible(true);
- panelHeader.setSize((int)(windowSize.getWidth() / 100 * 100), (int)(windowSize.getHeight() / 100 * 10));
- panelHeader.setBackground(backcolorPanelHeader);
- panelSearch = new JPanel();
- panelSearch.setLocation(0, panelHeader.getHeight());
- panelSearch.setVisible(true);
- panelSearch.setSize((int)(windowSize.getWidth() / 100 * 60), (int)(windowSize.getHeight() / 100 * 6.5));
- panelSearch.setBackground(backcolorPanelSearch);
- panelResultSearch = new JPanel(null);
- panelResultSearch.setLocation(0, panelHeader.getHeight() + panelSearch.getHeight());
- panelResultSearch.setVisible(true);
- panelResultSearch.setSize((int)(windowSize.getWidth() / 100 * 60), (int)(windowSize.getHeight() - panelHeader.getHeight() - panelSearch.getHeight()));
- panelResultSearch.setBackground(backcolorPanelSearch);
- panelRecipeText = new JPanel(null);
- panelRecipeText.setLocation(0, panelHeader.getHeight());
- panelRecipeText.setVisible(false);
- panelRecipeText.setSize((int)(windowSize.getWidth() / 100 * 60), (int)(windowSize.getHeight() - panelHeader.getHeight()));
- panelRecipeText.setBackground(backcolorPanelSearch);
- panelTab = new JPanel(null);
- panelTab.setSize((int)(windowSize.getWidth() - panelSearch.getWidth()), (int)(panelSearch.getHeight()));
- panelTab.setLocation(panelSearch.getWidth(), panelHeader.getHeight());
- panelTab.setBackground(backColorNonActivePanel);
- panelTab.setVisible(true);
- panelFilter = new JPanel(null);
- panelFilter.setLocation(panelResultSearch.getWidth(), panelHeader.getHeight() + panelTab.getHeight());
- panelFilter.setSize((int)(windowSize.getWidth() - panelResultSearch.getWidth()), (int)(windowSize.getHeight() - panelHeader.getHeight() - panelTab.getHeight()));
- panelFilter.setVisible(true);
- panelFilter.setBackground(backColorActivePanel);
- panelOptions = new JPanel(null);
- panelOptions.setLocation(panelRecipeText.getWidth(), panelHeader.getHeight() + panelTab.getHeight());
- panelOptions.setSize((int)(windowSize.getWidth() - panelRecipeText.getWidth()), (int)(windowSize.getHeight() - panelHeader.getHeight() - panelTab.getHeight()));
- panelOptions.setVisible(false);
- panelOptions.setBackground(backColorActivePanel);
- window.setVisible(true);
- window.add(panelHeader);
- window.add(panelResultSearch);
- window.add(panelSearch);
- window.add(panelRecipeText);
- window.add(panelTab);
- window.add(panelFilter);
- window.add(panelOptions);
- //
- //!!!
- //Эти лэйблы пропадают
- //!!!
- //
- labelFilter = new JLabel("Filters");
- labelFilter.setHorizontalAlignment(SwingConstants.CENTER);
- labelFilter.setVerticalAlignment(SwingConstants.CENTER);
- labelFilter.setSize(panelTab.getWidth() / 2, panelTab.getHeight());
- labelFilter.setLocation(0, 0);
- labelFilter.setFont(fontMain);
- labelFilter.setOpaque(true);
- labelFilter.setForeground(colorTextTab);
- labelFilter.setBackground(backColorActivePanel);
- labelAddNew = new JLabel("Add new recipe");
- labelAddNew.setHorizontalAlignment(SwingConstants.CENTER);
- labelAddNew.setVerticalAlignment(SwingConstants.CENTER);
- labelAddNew.setSize(panelTab.getWidth() / 2, panelTab.getHeight());
- labelAddNew.setLocation(labelFilter.getWidth(), 0);
- labelAddNew.setFont(fontMain);
- labelAddNew.setOpaque(false);
- labelAddNew.setForeground(backColorActivePanel);
- labelAddNew.setBackground(backColorActivePanel);
- //!!!
- //
- //
- //!!!
- //Тот самый JTextField
- textAreaSearch = new JTextField();
- textAreaSearch.setSize(panelSearch.getWidth(), panelSearch.getHeight());
- textAreaSearch.setLocation(0, 0);
- textAreaSearch.setBackground(Color.black);
- textAreaSearch.setOpaque(true);
- textAreaSearch.setVisible(true);
- //!!!
- //
- panelSearch.add(textAreaSearch);
- panelTab.add(labelFilter);
- panelTab.add(labelAddNew);
- }
- }
Решение задачи: «Некоторые сложнсти с использованием JTextField»
textual
Листинг программы
- panelTab.repaint();
- panelSearch.repaint();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д