18. februar 2001 - 12:17Der er
3 kommentarer og 1 løsning
mouseClicked
Jeg har en applet som tegner op 12X8 buttons, hver med et \"L\" skrevet på.
Når man klikker på en button, skal bokstavet \"L\" ændres til \"S\".
Jeg har tænkt på at bruge mouseClicked, læse koordinaterne til musen, og på den måde finde ud af hvilken button som er aktiveret. Hvordan gør jeg dette?
public void mouseClicked(MouseEvent event) { int yCoord = event.getY(); repaint();
public class oving6 extends Applet implements MouseListener {
private Button[][] plass; private final int RADMAX = 12; private final int SETMAX = 10; private Label meld1, meld2; private Panel midt; private int yCoord, xCoord;
public void init() {
plass = new Button[RADMAX][SETMAX];
setLayout( new BorderLayout() ); add( meld1 = new Label(\"Klikk på en av knappene for bestilling\"), BorderLayout.NORTH ); Panel midt = new Panel( new GridLayout( RADMAX+1, SETMAX+1, 5, 5 ) );
midt.add( new Label(\"KINO\") ); for ( int sete = 0; sete<SETMAX; sete++ ) midt.add( new Label(\"Sete \"+(sete+1)) );
for ( int rad = 0; rad<RADMAX; rad++ ) { midt.add( new Label(\"Rad \"+(rad+1)) ); for ( int sete = 0; sete<SETMAX; sete++ ) midt.add( plass[ rad ][ sete ] = new Button( \"L\" ) ); }
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
private Button[][] plass; private final int RADMAX = 12; private final int SETMAX = 10; private Label meld1, meld2; private Panel midt; private int yCoord, xCoord;
public void init() {
plass = new Button[RADMAX][SETMAX];
setLayout( new BorderLayout() ); add( meld1 = new Label(\"Klikk på en av knappene for bestilling\"), BorderLayout.NORTH );
Panel midt = new Panel( new GridLayout( RADMAX+1, SETMAX+1, 5, 5 ) );
ActionListener listener = new KnapListener();
midt.add( new Label(\"KINO\") );
for ( int sete = 0; sete<SETMAX; sete++ ) midt.add( new Label(\"Sete \"+(sete+1)) );
for ( int rad = 0; rad<RADMAX; rad++ ) { midt.add( new Label(\"Rad \"+(rad+1)) ); for ( int sete = 0; sete<SETMAX; sete++ ) { midt.add( plass[ rad ][ sete ] = new Button( \"L\" ) ); (plass[ rad ][ sete ] ).addActionListener(listener); } }
private class KnapListener implements ActionListener { public void actionPerformed(ActionEvent event) { Object source = event.getSource(); for ( int rad = 0; rad<RADMAX; rad++ ) { for (int sete=0; sete!=SETMAX; sete++) if (source==plass[ rad ][ sete ]) (plass[ rad ][ sete ]).setLabel(\"S\"); } } } }
Og når taksten er ændret, så er der ingen grund til at gøre det igen, så
public void actionPerformed(ActionEvent event) { ((Button) event.getSource()).setLabel(\"S\"); ((Button) event.getSource()).removeActionListener(this); }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.