Некоторые сложнсти с использованием 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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д