public class FaceMain extends JFrame {
CreateFace p1 = new CreateFace();
private ControlPanel panel;
public FaceMain(ControlPanel value) {
panel = value;
JFrame main = new JFrame();
main.setTitle("Face Frame");
main.setSize(new Dimension(600, 600));
main.setLocationRelativeTo(null);
main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
main.setVisible(true);
Container c = main.getContentPane();
main.add(p1);
panel.eyesSetE(true);
JFrame control = new JFrame();
control.setTitle("Control Panel");
control.setSize(new Dimension(300, 300));
control.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
control.setLocationRelativeTo(main);
control.setVisible(true);
ControlPanel p2 = new ControlPanel(p1);
control.add(p2);
}
}
public class ControlPanel extends JPanel {
boolean eyesSetEdit = false, faceSetEdit = false, mouthSetEdit = false,
editEyes;
private Color purple = new Color(133, 22, 145);
private CreateFace face;
private CreateFace p1;
public ControlPanel(CreateFace value) {
face = value;
p1 = value;
setLayout(new GridLayout(4, 0));
JButton change = new JButton("Click");
add(change);
JLabel info = new JLabel("Click Above To Change Features",
JLabel.CENTER);
add(info);
JLabel info1 = new JLabel("Slide Below To Change Size", JLabel.CENTER);
add(info1);
JScrollBar slider = new JScrollBar(Scrollbar.HORIZONTAL, 0, 100, 0, 300);
add(slider);
public void eyesSetE(boolean x) {
eyesSetEdit = x;
}
public boolean getEyesSet() {
return eyesSetEdit;
}
Я расширил свой класс, чтобы попытаться изменить логическое значение, которое будет использоваться exstensivly в классе ControlPanel принимать решения, однако каждый раз, когда я начинаю программу я получаю NullPointerException в строке «панель .eyesSetE (истина);» Даже если я попытаюсь позвонить getEyesSet(), я все равно получаю nullpointerИспользование JScrollBar для обновления компонентов
Awesome, спасибо большое описание, теперь я понимаю, как избежать статического, который является огромная помощь. У меня проблемы с изменением логического значения. Я создал частный экземпляр класса панели управления и пытаюсь изменить логическое значение с помощью \t \t того же метода, однако я продолжаю получать исключения с нулевым указателем. Я создал частный экземпляр класса и попытаюсь установитьBoolean (boolean edit) на основе щелчка мыши, но он продолжает давать мне исключение нулевого указателя. Проходят ли булевы в класс seperete по-разному? – Sam
Можете ли вы добавить пример того, что вы делаете по своему вопросу, это облегчило бы понимание ... – MadProgrammer
Я отредактировал его с разделом рассматриваемого кода. – Sam