На самом деле ни один из компонентов, таких как checkBox, JButtons, radioButtons, не работал, когда я добавлял их на юг или восток.
Если, однако, я добавляю их на север или запад, все в порядке ....
Излишне говорить, что в моем раннем детстве здесь, с программированием на Java, я изо всех сил пытаюсь определить, почему, после большого разочарования, конечно.
При добавлении в нижней части нажатие переключателей ничего не делает, открывается comboBox, ноотказывается разрешить выделение, checkBox ничего не делает, и JButton, похоже, не находится в депрессии, но выполняет свою задачу, даже несмотря на то, что не производит впечатление депрессии.
Опять при добавлении NORTH или WEST этивсе компоненты работают так, как они должны или ожидаются. Такое поведение было идентичным при выполнении моих Eclipse для Windows 10 и Linux.
Поиск мыслей, аналогичного опыта и возможных исправляемых причин.
Eclipse Версия: 2018-12 (4.10.0) Идентификатор сборки: 20181214-0600
Этот код создает экземпляр класса (myFace), расширяющего GCompound, чтобы просто передать простой графический объект на холстс каждым щелчком мыши события.Это точный код, в котором объекты взаимодействия работают, когда они расположены СЕВЕРО-ЗАПАД, но не ЮГО-ВОСТОК.
import acm.graphics.GLabel;
import acm.graphics.GObject;
import acm.graphics.GRect;
import acm.program.*;
import java.awt.Color;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.ButtonGroup;
import javax.swing.JRadioButton;
import javax.swing.JComboBox;
public class clickFace extends GraphicsProgram {
private static final long serialVersionUID = 1L;
private JCheckBox bx;
private JButton clear;
private JRadioButton small;
private JRadioButton medium;
private JRadioButton large;
private JComboBox clr;
private String[] clrs = {"Black", "Red", "Green"};
private static final int HeadHeight = 100;
private static final int HeadWidth = 50;
@Override
public void init () {
clear = new JButton ("Clear");
add(clear, NORTH);
putRadioButtons();
bx = new JCheckBox ("Front");
bx.setSelected(true);
add(bx, NORTH);
clr = new JComboBox (clrs);
clr.setEditable(false);
add(clr, NORTH);
addMouseListeners();
addActionListeners();
}
@Override
public void mouseClicked(MouseEvent e) {
if (bx.isSelected()) {
myFace face = new myFace (HeadHeight, HeadWidth);
if (small.isSelected() ) {
face.scale(.6);
}else if (large.isSelected() ) {
face = new myFace (HeadHeight, HeadWidth);
face.scale(1.5);
}
add(face, e.getX(), e.getY());
}else if (!bx.isSelected()) {
GRect backOfHead = new GRect (HeadWidth, HeadHeight);
if (small.isSelected() ) {
backOfHead.scale(.6);
}else if (large.isSelected() ) {
backOfHead.scale(1.5);
}
backOfHead.setFilled(true);
backOfHead.setFillColor(Color.blue);
add(backOfHead, e.getX(), e.getY());
}
}
@Override
public void actionPerformed (ActionEvent e) {
if (e.getActionCommand().equals("Clear")) {
removeAll();
}
}
private void putRadioButtons (){
small = new JRadioButton ("Small");
medium = new JRadioButton ("Medium");
large = new JRadioButton ("Large");
ButtonGroup sizeGroup = new ButtonGroup ();
sizeGroup.add(small);
sizeGroup.add(medium);
medium.setSelected(true);
sizeGroup.add(large);
add(small, NORTH);
add(medium, NORTH);
add(large, NORTH);
}
}