Fiquei curioso sobre o que falou sobre SmallTalk e pesquisei até encontrar isto aqui:
self add: Button id: ##CalcButton name: nil aspect: #calcButtonPressed.
calcButtonPressed
"Compute the actual number of man-hours to complete a task."
| totalHours adjustedHours factor |
(self widgetNamed: #hourField) updateModel.
totalHours := Double fromString: self hourFieldModel value.
factor := #(1.0 1.5 2.0) at: (popupListModel selectionIndex).
adjustedFieldModel value: totalHours * factor.
Ok, realmente em Java seriam 7 linhas para obter o mesmo resultado no tocante ao listener, ponto pro SmalTalk. Contudo, do “ponto-de-vista mvc” que você está criticando, é a mesma macarronada que isto aqui:
JButton button = new JButton( "enviar" );
button.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e ) {
submit();
}
} );
add( button );
Não sei se está familiarizado com o JBinding ou o SwiXml. Se não, aconselho a dar uma olhada no modelo de eventos de ambos, para saber o que é possível com Java.
Só porque Swing é (muito) cru não quer dizer que seja ruim. Estou trabalhando com o famigerado atualmente e estou maravilhado com as possibilidades que ele oferece.
Um exemplo em SwiXml:
<button Text=“Click Here” Action=“submit”/>
Pronto, colocou o listener no danado
pessoal, alguem sabe me dizer oq esta errado nesse programa aq?
ele esta dando erro no char desde ja agradeço vlw abraço//
import java.util.Scanner;
public class UsaOperacoes
{
public static void main(String args[])
{
Decisão d = new Decisão();
Scanner util = new Scanner(System.in);
char operador;
System.out.println("Digite o primeiro numero a ser operado:");
d.num1 = util.nextInt();
System.out.println("Digite o segundo numero a ser operado:");
d.num2 = util.nextInt();
System.out.println("Digite o terceiro numero a ser operado:");
d.num3 = util.nextInt();
System.out.println("Digite uma das operação(*, +, -):");
operador = util.next();
d.multiplicar();
d.subitracao();
d.soma();
if(operador == '*')
{
System.out.println("a multiplicação eh:" + d.multiplicar);
}
else if(operador == '-')
{
System.out.println("a subitração eh:" + d.sulbitracao);
}
else
{
System.out.println("a soma eh:" + d.soma);
}
}