Aşağıdaki kodlardan birinin neden derlendiğini ve diğerinin neden olmadığını anlayamıyorum.Bu iki bit kodu arasındaki fark nedir?
public KeyBidings(){
Action rightAction = new AbstractAction(){
public void actionPreformed(ActionEvent e){
x+=10;
drawPanel.repaint();
}
};
Action leftAction = new AbstractAction(){
public void actionPreformed(ActionEvent e){
x-=10;
drawPanel.repaint();
}
};
InputMap inputMap = drawPanel.getInputMap(JPanel.WHEN_IN_FOCUSED_WINDOW);
ActionMap actionMap = drawPanel.getActionMap();
inputMap.put(KeyStroke.getKeyStroke("RIGHT"), "rightAction");
actionMap.put("rightAction", rightAction);
inputMap.put(KeyStroke.getKeyStroke("LEFT"), "leftAction");
actionMap.put("leftAction", leftAction);
add(drawPanel);
pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(640, 480);
setTitle("Game");
setLocationRelativeTo(null);
setVisible(true);
}
Ve sadece iyi derler: Biri:
public KeyBidings(){
Action rightAction = new AbstractAction(){
public void actionPerformed(ActionEvent e) {
x +=10;
drawPanel.repaint();
}
};
InputMap inputMap = drawPanel.getInputMap(JPanel.WHEN_IN_FOCUSED_WINDOW);
ActionMap actionMap = drawPanel.getActionMap();
inputMap.put(KeyStroke.getKeyStroke("RIGHT"), "rightAction");
actionMap.put("rightAction", rightAction);
add(drawPanel);
pack();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
EDIT:
derleme değil bir (Derleyici yöntemi KeyBidings() bir dönüş türü ihtiyacı var) Ben Bir kurucu ve bir yöntem arasındaki farkı bilmiyordum ama şimdi başka bir sorunum var: https://gyazo.com/cd3c21a8562589451814903febaf89fe
Burada sorun nedir? Her iki sınıf için de kaynak kodları ekledim.
Kaynak Kod 1: http://pastebin.com/vwNtJZEG Kaynak Kod 2: İlki başka sınıfın, bir eksik dönüş türü ile bir yöntemdir oysa http://pastebin.com/nL4SbtkM
Ayrıca, [Java Adlandırma Kuralları] 'nı okuduğunuzdan emin olun (http://www.oracle.com/technetwork/java/codeconventions-135099.html): yöntemler küçük harfle başlamalıdır. Bu, bir yöntem ve bir kurucu arasında ayrım yapmayı kolaylaştırır (muhtemelen başka bir sınıftan kopyalanmış). – Kenney
Bu parçacıkların her birinin sınıfının adı nedir? Aynı sınıfta mı? Biri belki de 'KeyBindings' denen bir sınıfta, diğeri de değil midir? –
@CaptainMan Yayını düzenledim ve her iki sınıf için kaynak kodları ekledim. –