Объясните почему не запускается программа. - Java
Формулировка задачи:
Объясните пожалуйста почему не запускается программа.
Листинг программы
- package gridbag;
- import java.awt.*;
- import javax.swing.*;
- import java.awt.event.*;
- import java.beans.*;
- /**
- * Фрейм, в котором сеточно-контейнерная компоновка служит для
- * расположения компонентов, предназначенных для выбора шрифтов
- * Created by Михаил on 04.07.2016.
- */
- public class FontFrame extends JFrame{
- public static final int TEXT_ROWS = 10;
- public static final int TEXT_COLUMS = 20;
- private JComboBox<String> face;
- private JComboBox<Integer> size;
- private JCheckBox bold;
- private JCheckBox italic;
- private JTextArea sample;
- public FontFrame() {
- GridBagLayout layout = new GridBagLayout();
- setLayout(layout);
- ActionListener listener = EventHandler.create(ActionListener.class, this, "updateSample");
- //Сконструировать компоненты
- JLabel faceLabel = new JLabel("Face: ");
- face = new JComboBox<>(new String[]{"Serif", "SansSerif",
- "Monospaced", "Dialog", "DialogInput"});
- face.addActionListener(listener);
- JLabel sizeLabel = new JLabel("Size: ");
- size = new JComboBox<>(new Integer[]{8, 10, 12, 15, 18, 24, 36, 48});
- size.addActionListener(listener);
- bold = new JCheckBox("Bold");
- bold.addActionListener(listener);
- italic = new JCheckBox("Italic");
- italic.addActionListener(listener);
- sample = new JTextArea(TEXT_ROWS, TEXT_COLUMS);
- sample.setText("Wowowowowow!!!@#E!#!#");
- sample.setEditable(false);
- sample.setLineWrap(true);
- sample.setBorder(BorderFactory.createEtchedBorder());
- //Ввести компоненты в сетку, используя служебный класс CBG
- add(faceLabel, new GBC(0, 0).setAnchor(GBC.EAST));
- add(face, new GBC(1, 0).setFill(GBC.HORIZONTAL).setWeight(100, 0).
- setInsets(1));
- add(sizeLabel, new GBC(0, 1).setAnchor(GBC.EAST));
- add(size, new GBC(1, 1).setFill(GBC.HORIZONTAL).setWeight(100, 0).
- setInsets(1));
- add(bold, new GBC(0, 2, 2, 1).setAnchor(GBC.CENTER).
- setWeight(100, 100));
- add(italic, new GBC(0, 3, 2, 1).setAnchor(GBC.CENTER).
- setWeight(100, 100));
- add(sample, new GBC(2, 0, 1, 4).setAnchor(GBC.BOTH).
- setWeight(100, 100));
- pack();
- updateSample();
- }
- public void updateSample()
- {
- String fontFace = (String) face.getSelectedItem();
- int fontStyle = (bold.isSelected() ? Font.BOLD : 0)
- + (italic.isSelected() ? Font.ITALIC : 0);
- int fontSize = size.getItemAt(size.getSelectedIndex());
- Font font = new Font(fontFace, fontStyle, fontSize);
- sample.setFont(font);
- sample.repaint();
- }
- public static void main(String[] args){
- EventQueue.invokeLater(new Runnable() {
- @Override
- public void run() {
- JFrame frame = new FontFrame();
- frame.setTitle("FontFrame");
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setVisible(true);
- }
- });
- }
- }
Листинг программы
- package gridbag;
- import java.awt.*;
- /**
- * Этот класс упрощает применение класса GridBagConstraints
- * Created by Михаил on 04.07.2016.
- */
- public class GBC extends GridBagConstraints
- {
- /**
- * Строит объект типа GBC, накладывая ограничения с помощью
- * параметров gridx и gridy, а все остальные ограничения
- * накладываются на сеточно-контейнерную компоновку по умолчанию
- * @param gridx Местоположение в сетке по горизонтали
- * @param gridy Местоположение в сетке по вертикали
- */
- public GBC(int gridx, int gridy)
- {
- this.gridx = gridx;
- this.gridy = gridy;
- }
- /**
- * Строит объект типа GBC, накладывая ограничения с помощью параметров
- * gridx, gridy, gridwidth, gridheught, а все остальные ограничения
- * накладываются на сеточно-контейнерную компоновку по умолчанию
- * @param gridx Местоположение в сетке по горизонтали
- * @param gridy Местоположение в сетке по вертикали
- * @param gridwidth Шаг сетки по горизонтали
- * @param gridheight Шаг сетки по вертикали
- */
- public GBC(int gridx, int gridy, int gridwidth, int gridheight)
- {
- this.gridx = gridx;
- this.gridy = gridy;
- this.gridwidth = gridwidth;
- this.gridheight = gridheight;
- }
- /**
- * Устанавливает привязку к сетке
- * @param anchor Степень привязки
- * @return this Объект для последующего видоизменения
- */
- public GBC setAnchor(int anchor)
- {
- this.anchor = anchor;
- return this;
- }
- /**
- * Устанавливает направление для заполнения
- * @param fill Направление заполнения
- * @return this Объект для последующего видоизменения
- */
- public GBC setFill(int fill)
- {
- this.fill = fill;
- return this;
- }
- /**
- * Устанавливает веса ячеек
- * @param weightx Вес ячейки по горизонтали
- * @param weighty Вес ячейки по вертикали
- * @return this Объект для последующего видоизменения
- */
- public GBC setWeight(double weightx, double weighty)
- {
- this.weightx = weightx;
- this.weighty = weighty;
- return this;
- }
- /**
- * Вводит пробелы вокруг данной ячейки
- * @param distance Пробел по всем направлениям
- * @return this Объект для последующего видоизменения
- */
- public GBC setInsets(int distance)
- {
- this.insets = new Insets(distance, distance, distance, distance);
- return this;
- }
- /**
- * Вводит пробелы вокруг данной ячейки
- * @param top Пробел сверху
- * @param left Пробел слева
- * @param right Пробел справа
- * @param bottom Пробел снизу
- * @return this Объект для последующего видоизменения
- */
- public GBC setInsets(int top, int left, int right, int bottom)
- {
- this.insets = new Insets(top, left, right, bottom);
- return this;
- }
- /**
- * Устанавливает внутреннее заполнение
- * @param ipadx Внутреннее заполнение по горизонтали
- * @param ipady Внутреннее заполнение по вертикали
- * @return this Объект для последующего видоизменения
- */
- public GBC setIpad(int ipadx, int ipady)
- {
- this.ipadx = ipadx;
- this.ipady = ipady;
- return this;
- }
- }
Решение задачи: «Объясните почему не запускается программа.»
textual
Листинг программы
- Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: illegal anchor value
- at java.awt.GridBagLayout.AdjustForGravity(GridBagLayout.java:1763)
- at java.awt.GridBagLayout.adjustForGravity(GridBagLayout.java:1604)
- at java.awt.GridBagLayout.ArrangeGrid(GridBagLayout.java:2194)
- at java.awt.GridBagLayout.arrangeGrid(GridBagLayout.java:2025)
- at java.awt.GridBagLayout.layoutContainer(GridBagLayout.java:806)
- at java.awt.Container.layout(Container.java:1503)
- at java.awt.Container.doLayout(Container.java:1492)
- at java.awt.Container.validateTree(Container.java:1688)
- at java.awt.Container.validateTree(Container.java:1697)
- at java.awt.Container.validateTree(Container.java:1697)
- at java.awt.Container.validateTree(Container.java:1697)
- at java.awt.Container.validate(Container.java:1623)
- at java.awt.Container.validateUnconditionally(Container.java:1660)
- at java.awt.Window.pack(Window.java:818)
- at gridbag.FontFrame.<init>(FontFrame.java:69)
- at gridbag.FontFrame$1.run(FontFrame.java:88)
- at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
- at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:745)
- at java.awt.EventQueue.access$300(EventQueue.java:103)
- at java.awt.EventQueue$3.run(EventQueue.java:706)
- at java.awt.EventQueue$3.run(EventQueue.java:704)
- at java.security.AccessController.doPrivileged(Native Method)
- at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
- at java.awt.EventQueue.dispatchEvent(EventQueue.java:715)
- at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
- at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
- at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
- at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
- at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
- at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
- Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: illegal anchor value
- at java.awt.GridBagLayout.AdjustForGravity(GridBagLayout.java:1763)
- at java.awt.GridBagLayout.adjustForGravity(GridBagLayout.java:1604)
- at java.awt.GridBagLayout.ArrangeGrid(GridBagLayout.java:2194)
- at java.awt.GridBagLayout.arrangeGrid(GridBagLayout.java:2025)
- at java.awt.GridBagLayout.layoutContainer(GridBagLayout.java:806)
- at java.awt.Container.layout(Container.java:1503)
- at java.awt.Container.doLayout(Container.java:1492)
- at java.awt.Container.validateTree(Container.java:1688)
- at java.awt.Container.validateTree(Container.java:1697)
- at java.awt.Container.validateTree(Container.java:1697)
- at java.awt.Container.validateTree(Container.java:1697)
- at java.awt.Container.validate(Container.java:1623)
- at java.awt.Window.dispatchEventImpl(Window.java:2717)
- at java.awt.Component.dispatchEvent(Component.java:4698)
- at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)
- at java.awt.EventQueue.access$300(EventQueue.java:103)
- at java.awt.EventQueue$3.run(EventQueue.java:706)
- at java.awt.EventQueue$3.run(EventQueue.java:704)
- at java.security.AccessController.doPrivileged(Native Method)
- at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
- at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
- at java.awt.EventQueue$4.run(EventQueue.java:720)
- at java.awt.EventQueue$4.run(EventQueue.java:718)
- at java.security.AccessController.doPrivileged(Native Method)
- at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
- at java.awt.EventQueue.dispatchEvent(EventQueue.java:717)
- at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
- at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
- at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
- at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
- at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
- at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д