Piirustusohjelma

Tiina Taitava

Yritän tehdä pientä piirto-ohjelmaa javalla. Ihan lähtökuopissa tässä pyöritään, ollaan itse asiassa pyöritty koko ilta. Nyt kuitenkin kaikki keksimäni jutut ja ohjeet läpikäytyäni pyydän teiltä apua. Yritän tehdä nappia, jota painamalla voitaisiin piirtää vapaata viivaa. Mutta ei onnistu. En saa millään konstilla nappiin sellaista koodia aikaiseksi. Nyt koko koodikin on jo ihan sekaisin:

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class piirto extends Applet implements ActionListener{
Button a;
int x,y;
public void init(){
add(a = new Button("Piirrä"));
a.addActionListener(this);
}
public void paint(Graphics g){
a.reshape(5,5,50,50);
}
public void actionPerfomed (ActionEvent e){
if (e.getActionCommand().equals("Piirrä")){
Graphics z = getGraphics();
z.fillOval(x,y,20,20);
showStatus("Hiiren sijainti: " x "," y);
}
}
}

..miten tätä siis pitäisi fiksata että tämä alkaisi toimia?
entä miten saisin tehtyä napin, jota painamalla voitaisiin piirtää appletille suora viiva napsauttamalla alku- ja loppukohdassa?

Suuri kiitos jos joku jaksaa neuvoa, noihin kahteen kysymykseen jos saisin vastauksen, alkaisin varmasti päästä juonesta kiinni. Kiitos.

1

381

Äänestä

    Vastaukset 1

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • jouman

      tulee varmaan hieman myöhässä, mutta z.drawline(x1,y1,x2,y2) piirtää viivan pisteiden (x1,y1) ja (x2,y2) välille. hiiren koordinaattien selvittämistä en tiedä, saattaapi onnistua jollain MouseMotionListenerillä tai vastaavalla.

      vapaata viivaa voit piirtää esim. tekemällä taulukon (tai arraylistin) viivan pisteille, ja sitten piirtää pisteen taulukon joka pisteeseen. tai jos viivaa ei ole tarvetta muokata myöhemmin (ei undoa), voit vain piirtää pisteen aina, kun hiiren nappi on pohjassa. pistehän on helppo tehdä, joko drawline(x,y,x,y) tai drawrect(x,y,0,0), joista jälkimmäinen siis tekee suorakaiteen, jonka koko on 1 piste.

      koodin virheistä sen verran, ettei tuossa ainakaan x ja y -muuttujille anneta mitään arvoa missään vaiheessa. napin koko kannattaa ehkä asettaa jo init-metodissa. ja silloin metodilla a.setsize(x,y). tai a.setbounds(x,y,x2,y2), joista x ja y ovat sijainti ja x2 ja y2 koko.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Mihin kiinnitit ensimmäisenä

      huomiota kaivatussasi?
      Ikävä
      99
      1348
    2. Poutalan onnettomuus

      https://www.mtvuutiset.fi/artikkeli/ministeri-mika-poutala-vakavassa-onnettomuudessa/9375980 Kumma kun jutussa ei manit
      Maailman menoa
      111
      1114
    3. Missä on Sofia Virta? Loistaa poissaolollaan Erikoisjoukot uudelta kaudelta

      Vihreiden puheenjohtaja, kansanedustaja Sofia Virta pääsi otsikoihin, kun tieto hänen osallistumisestaan Erikoisjoukot-k
      Kotimaiset julkkisjuorut
      45
      926
    4. Koska olet ihastunut minuun

      Kysymys sulle. Oma vastaus, tänä vuonna. ❤️
      Ikävä
      61
      917
    5. Olen pahoillani

      Olen mokannut pahasti ja pilannut sinun ja monen muun ihmisen maineen. Anteeksi. Muutan toiselle paikkakunnalle. Hyvästi
      Ikävä
      56
      912
    6. Junaonnettomuus

      Kuka jäi junan alle?
      Haapajärvi
      4
      889
    7. Onko sinulla vihan tunteita

      Minua kohtaan? Haluatko kostaa jotakin tai tehdä pahaa? Voit tähän sanoa ihan luottamuksella.
      Ikävä
      130
      841
    8. mitä olet valehdellut

      kaivatullesi? kerro rehellisesti totuus
      Ikävä
      66
      705
    9. Naisen kimppuun lenkkipolulla

      Poliisin tietojen mukaan noin 30–40 vuotias ulkomaalaistaustaisen näköinen mies kävi naisen kimppuun yllättäen Rentukant
      Kajaani
      55
      669
    10. Ei ole siitä kiinni

      Että en tykkäisi. Tykkään liikaa, mutta se on epäsopivaa. Hirveää kidutusta ruokkia tunnetta täällä, jos todellisuudessa
      Ikävä
      34
      590
    Aihe