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