This. метод() и объект. setContentPane() - Java

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

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

Здравствуйте, имею два вопроса по Java: 1) Имеется такой вот код:
Листинг программы
  1. import javax.swing.*;
  2. import java.awt.GridLayout;
  3. import java.awt.BorderLayout;
  4. public class Calculator {
  5. // Declaration of all calculator's components.
  6. JPanel windowContent;
  7. JTextField displayField;
  8. JButton button0;
  9. JButton button1;
  10. JButton button2;
  11. JButton button3;
  12. JButton button4;
  13. JButton button5;
  14. JButton button6;
  15. JButton button7;
  16. JButton button8;
  17. JButton button9;
  18. JButton buttonPoint;
  19. JButton buttonEqual;
  20. JPanel p1;
  21. // Constructor creates the components in memory
  22. // and adds the to the frame using combination of
  23. // Borderlayout and Gridlayout
  24. Calculator(){
  25. windowContent= new JPanel();
  26. // Set the layout manager for this panel
  27. BorderLayout bl = new BorderLayout();
  28. windowContent.setLayout(bl);
  29. // Create the display field and place it in the
  30. // North area of the window
  31. displayField = new JTextField(30);
  32. windowContent.add("North",displayField);
  33. // Create buttons using constructor of the
  34. // class JButton that takes the label of the
  35. // button as a parameter
  36. button0=new JButton("0");
  37. button1=new JButton("1");
  38. button2=new JButton("2");
  39. button3=new JButton("3");
  40. button4=new JButton("4");
  41. button5=new JButton("5");
  42. button6=new JButton("6");
  43. button7=new JButton("7");
  44. button8=new JButton("8");
  45. button9=new JButton("9");
  46. buttonPoint = new JButton(".");
  47. buttonEqual=new JButton("=");
  48. // Create the panel with the GridLayout
  49. // that will contain 12 buttons - 10 numeric
  50. // ones, and buttons with the point and the
  51. // equal sign
  52. p1 = new JPanel();
  53. GridLayout gl =new GridLayout(4,3);
  54. p1.setLayout(gl);
  55. // Add window controls to the panel p1
  56. p1.add(button1);
  57. p1.add(button2);
  58. p1.add(button3);
  59. p1.add(button4);
  60. p1.add(button5);
  61. p1.add(button6);
  62. p1.add(button7);
  63. p1.add(button8);
  64. p1.add(button9);
  65. p1.add(button0);
  66. p1.add(buttonPoint);
  67. p1.add(buttonEqual);
  68. // Add the panel p1 to the center area
  69. // of the window
  70. windowContent.add("Center",p1);
  71. //Create the frame and set its content pane
  72. JFrame frame = new JFrame("Calculator");
  73. frame.setContentPane(windowContent);
  74. // set the size of the window to be big enough
  75. // to accomodate all controls
  76. frame.pack();
  77. // Finally, display the window
  78. frame.setVisible(true);
  79. }
  80. public static void main(String[] args) {
  81. Calculator calc = new Calculator();
  82. }
  83. }
Ближе к концу присутствует такая строчка:
Листинг программы
  1. frame.setContentPane(windowContent);
Так вот, вопрос в следуещем: почему взято имено в виде аргумента
Листинг программы
  1. windowContent
  2. из
  3. windowContent = new JPanel();
, а не:
Листинг программы
  1. p1
  2. из
  3. p1 = new JPanel();
Пробовал сам тестировать - окно стает не таким(кое чего нету), как надо. Почему так и, если можно, обьяснить как оно работает?! Спасибо! 2) Что бы не спамить на форуме, спрошу тут еще одно: как работает и почему this.метод:
Листинг программы
  1. this.setLayout(gb);
в коде
Листинг программы
  1. // Set the GridBagLayout for the window’s content pane
  2. GridBagLayout gb = new GridBagLayout();
  3. this.setLayout(gb);
Если бы было через:
Листинг программы
  1. JPanel blabla = new JPanel();
  2. GridBagLayout gb = new GridBagLayout();
  3. blabla.setLayout(gb);
, то ясно, а вот с

this.

накладочка. Спасибо за помощь! P.S.: таки не там создал, перенесите тему по возможности в правильный раздел. Извиняюся!

Решение задачи: «This. метод() и объект. setContentPane()»

textual
Листинг программы
  1.  windowContent= new JPanel(); // создание основы
  2.  
  3. //установка принципа размещения компонентов
  4. BorderLayout bl = new BorderLayout();
  5.       windowContent.setLayout(bl);
  6.  
  7. //создание еще одной панели со своим принципом размещения
  8.  p1 = new JPanel();
  9.           GridLayout gl =new GridLayout(4,3);
  10.           p1.setLayout(gl);
  11.  
  12. //Размещение новой панели  p1 с кнопочками, как один из элементов на основной панели windowContent.
  13.  windowContent.add("Center",p1);

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


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

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

13   голосов , оценка 4.231 из 5

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

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

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