Некоторые сложнсти с использованием JTextField - Java

Узнай цену своей работы

Формулировка задачи:

Имеется несколько проблем с использованием JTextField: 1) При создании объекта JTextField пропадают JLabel - ы (толи полностью попадают, толи становятся невидимыми не знаю...) при чем они находятся в другой панели. 2) Сам JTextField не выделяется на фоне панели в которую он вложен до тех пор, пока на него не кликнешь... Код:
Листинг программы
  1. public class Display{
  2. private Dimension windowSize = new Dimension((int)(Toolkit.getDefaultToolkit().getScreenSize().getWidth() / 100 * 66), (int)(Toolkit.getDefaultToolkit().getScreenSize().getHeight() / 100 * 66));
  3. final Color backcolorPanelHeader = new Color(0x1E1411);
  4. final Color backcolorPanelSearch = new Color(0xffdcaf);
  5. final Color backColorActivePanel = new Color(0x2B2216);
  6. final Color backColorNonActivePanel = new Color(0x95846D);
  7. final Color colorTextTab = new Color(0x9d7d46);
  8. final Font fontMain = new Font("Verdana", Font.BOLD, 14);
  9. private JFrame window;
  10. private JPanel panelHeader;
  11. private JPanel panelResultSearch;
  12. private JPanel panelRecipeText;
  13. private JPanel panelSearch;
  14. private JPanel panelTab;
  15. private JPanel panelFilter;
  16. private JPanel panelOptions;
  17. private JLabel labelFilter;
  18. private JLabel labelAddNew;
  19. private JTextField textAreaSearch;
  20. public void create(String title){
  21. window = new JFrame(title);
  22. window.setSize(windowSize);
  23. window.setLocationRelativeTo(null);
  24. window.setResizable(false);
  25. window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  26. window.setLayout(null);
  27. panelHeader = new JPanel(null);
  28. panelHeader.setLocation(0, 0);
  29. panelHeader.setVisible(true);
  30. panelHeader.setSize((int)(windowSize.getWidth() / 100 * 100), (int)(windowSize.getHeight() / 100 * 10));
  31. panelHeader.setBackground(backcolorPanelHeader);
  32. panelSearch = new JPanel();
  33. panelSearch.setLocation(0, panelHeader.getHeight());
  34. panelSearch.setVisible(true);
  35. panelSearch.setSize((int)(windowSize.getWidth() / 100 * 60), (int)(windowSize.getHeight() / 100 * 6.5));
  36. panelSearch.setBackground(backcolorPanelSearch);
  37.  
  38. panelResultSearch = new JPanel(null);
  39. panelResultSearch.setLocation(0, panelHeader.getHeight() + panelSearch.getHeight());
  40. panelResultSearch.setVisible(true);
  41. panelResultSearch.setSize((int)(windowSize.getWidth() / 100 * 60), (int)(windowSize.getHeight() - panelHeader.getHeight() - panelSearch.getHeight()));
  42. panelResultSearch.setBackground(backcolorPanelSearch);
  43. panelRecipeText = new JPanel(null);
  44. panelRecipeText.setLocation(0, panelHeader.getHeight());
  45. panelRecipeText.setVisible(false);
  46. panelRecipeText.setSize((int)(windowSize.getWidth() / 100 * 60), (int)(windowSize.getHeight() - panelHeader.getHeight()));
  47. panelRecipeText.setBackground(backcolorPanelSearch);
  48. panelTab = new JPanel(null);
  49. panelTab.setSize((int)(windowSize.getWidth() - panelSearch.getWidth()), (int)(panelSearch.getHeight()));
  50. panelTab.setLocation(panelSearch.getWidth(), panelHeader.getHeight());
  51. panelTab.setBackground(backColorNonActivePanel);
  52. panelTab.setVisible(true);
  53. panelFilter = new JPanel(null);
  54. panelFilter.setLocation(panelResultSearch.getWidth(), panelHeader.getHeight() + panelTab.getHeight());
  55. panelFilter.setSize((int)(windowSize.getWidth() - panelResultSearch.getWidth()), (int)(windowSize.getHeight() - panelHeader.getHeight() - panelTab.getHeight()));
  56. panelFilter.setVisible(true);
  57. panelFilter.setBackground(backColorActivePanel);
  58. panelOptions = new JPanel(null);
  59. panelOptions.setLocation(panelRecipeText.getWidth(), panelHeader.getHeight() + panelTab.getHeight());
  60. panelOptions.setSize((int)(windowSize.getWidth() - panelRecipeText.getWidth()), (int)(windowSize.getHeight() - panelHeader.getHeight() - panelTab.getHeight()));
  61. panelOptions.setVisible(false);
  62. panelOptions.setBackground(backColorActivePanel);
  63. window.setVisible(true);
  64. window.add(panelHeader);
  65. window.add(panelResultSearch);
  66. window.add(panelSearch);
  67. window.add(panelRecipeText);
  68. window.add(panelTab);
  69. window.add(panelFilter);
  70. window.add(panelOptions);
  71. //
  72. //!!!
  73. //Эти лэйблы пропадают
  74. //!!!
  75. //
  76. labelFilter = new JLabel("Filters");
  77. labelFilter.setHorizontalAlignment(SwingConstants.CENTER);
  78. labelFilter.setVerticalAlignment(SwingConstants.CENTER);
  79. labelFilter.setSize(panelTab.getWidth() / 2, panelTab.getHeight());
  80. labelFilter.setLocation(0, 0);
  81. labelFilter.setFont(fontMain);
  82. labelFilter.setOpaque(true);
  83. labelFilter.setForeground(colorTextTab);
  84. labelFilter.setBackground(backColorActivePanel);
  85. labelAddNew = new JLabel("Add new recipe");
  86. labelAddNew.setHorizontalAlignment(SwingConstants.CENTER);
  87. labelAddNew.setVerticalAlignment(SwingConstants.CENTER);
  88. labelAddNew.setSize(panelTab.getWidth() / 2, panelTab.getHeight());
  89. labelAddNew.setLocation(labelFilter.getWidth(), 0);
  90. labelAddNew.setFont(fontMain);
  91. labelAddNew.setOpaque(false);
  92. labelAddNew.setForeground(backColorActivePanel);
  93. labelAddNew.setBackground(backColorActivePanel);
  94. //!!!
  95. //
  96.  
  97. //
  98. //!!!
  99. //Тот самый JTextField
  100. textAreaSearch = new JTextField();
  101. textAreaSearch.setSize(panelSearch.getWidth(), panelSearch.getHeight());
  102. textAreaSearch.setLocation(0, 0);
  103. textAreaSearch.setBackground(Color.black);
  104. textAreaSearch.setOpaque(true);
  105. textAreaSearch.setVisible(true);
  106. //!!!
  107. //
  108.  
  109. panelSearch.add(textAreaSearch);
  110. panelTab.add(labelFilter);
  111. panelTab.add(labelAddNew);
  112. }
  113. }
P.S Все вышеописанные проблемные элементы находятся внизу кода

Решение задачи: «Некоторые сложнсти с использованием JTextField»

textual
Листинг программы
  1. panelTab.repaint();
  2. panelSearch.repaint();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.733 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут