Wyznaczanie dowolnego pola prostokąta w java

0

Witam, pisałem o tym w dziale java ale nie otrzymałem odpowiedzi. Jednak postanowiłem ponownie tu w tym dziale dać.
Otóż zadanie mam o następującej treści:
Napisać program wyznaczający pole dowolnego prostokąta (technologia obiektowa)
Więc stworzyłem dwa pola JTextField o dwóch zmiennych.
Oraz JTextField jako trzecie pole jest polem wynikowym.
Jako przycisk oblicz wartości z obu pól dałem jako double i realizujący wzór na pole prostokąta P= a *b.

Pytanie, czy dobrze zrozumiałem zadanie? Dla mnie wyznaczanie pola prostokąta to podanie dowolnej wartości boku A i B. No ale jednak wykładowca od ćwiczeń nie podobało się bo mu nie chodzi o podawanie danych do pól. I tu już nie wiem.

Jak będzie trzeba podam cały kod programu, ale na razie nie będę zaśmiecać.

0

bo ćwiczenie nie jest na liczenie pola prostokąta, tylko na umiejętność programowania obiektowego, masz dopisek "(technologia obiektowa)"

0

Obiektowo napisałem w NB bez korzystania z GUI. To jak inaczej mam napisać?

0

Bo liczby się podaje w JSpinner. Ustawiasz jego model na Number i typ Double. Pobierasz tak:

 double a=(Double)(bokA.getValue())
0

nie bardzo rozumiem

0

To jak użytkownik wprowadza parametry prostokąta jest nieistotne. Czy zdefiniowałeś klasę Prostokąt zawierającą metodę policzPole()? Czy tworzysz obiekt klasy Prostokąt?
Czy wywołujesz na rzecz tego obiektu metodę policzPole()?

0

klasy prostokąt i licz pole nie mam ale mam pod inną nazwą;)

0

Można spytać pod jaką?

Tak BTW. to co to u licha jest "technologia obiektowa"?

0

someknid, facetowi chodzi aby nie używać gui a obiektowo programować komponenty i zdarzenia. Nie znam dobrze javy i klasy,obiekty mylę. Ja po prostu mam program do obliczania pola prostokąta. Popatrzyłem w dokumentacji java o wyrysowaniu prostokąta i nadawaniu barwy. Czyli muszę teraz poprawić aby nie obliczał pole a wyznaczał i pokazywał prostokąt.
Dodam że ten facet od ćwiczeń chce kalkulator obiektowo bez przycisków. Ale o tym napisałem w dziale java,znajdziesz;)
Dobra dam kod najwyżej mnie ochrzanicie :)

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class poleprostokata
{
  public static void main(String args[])
    {
      poleprost poleprost =new  poleprost();
      poleprost.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      poleprost.setVisible(true);
      poleprost.setResizable(false);
     
     
  }
}
class poleprost extends JFrame
{
  public poleprost()
  {
    setTitle(" Pole Prostokąta");
    setSize(210,250);
    polenew prost =new polenew();
    Container licz=getContentPane();
    licz.add(prost);


  }
}
class polenew extends JPanel // tworzymy nowy obiekt MójPanel
{

  JTextField dłA;
  JTextField dłB;
  JTextField wynikpole;
 

  public polenew()
  {
    setLayout(new FlowLayout(FlowLayout.LEFT));
  
   
    JLabel info1=new JLabel("Podaj długość pierwszego boku");
    add(info1);

    dłA=new JTextField("",15);
    add(dłA);

    JLabel info2=new JLabel("Podaj długość drugiego boku");
    add(info2);

    dłB=new JTextField("",15);
    add(dłB);

    JButton mnozenie=new JButton("Oblicz");
    add(mnozenie);

    JButton czysc=new JButton("Wyczyść pola");
    add(czysc);

    JLabel lab3=new JLabel("Pole prostokąta wynosi:");
    add(lab3);

    ActionListener zad=new Oblicz();
    mnozenie.addActionListener(zad);

    ActionListener cls = new Clear();
    czysc.addActionListener(cls);

   

    wynikpole=new JTextField("",15);
    add(wynikpole);

   

    }
  class Oblicz implements ActionListener
  {
    public void actionPerformed(ActionEvent zdarzenie)
    {
       
      double bokA=Double.parseDouble(dłA.getText());
      double bokB=Double.parseDouble(dłB.getText());
      double iloczyn=bokA*bokB;
      wynikpole.setText(""+iloczyn);

    }
  }

  class Clear implements ActionListener
  {
    public void actionPerformed(ActionEvent zdarzenie)
    {
        wynikpole.setText("");
        dłA.setText("");
        dłB.setText("");  
    }
  }

 
}

 
0

imho to Ty gościa nie rozumiesz, Gdzie w Twoim kodzie obiektowość i gdzie metoda wspomniana przez bo?

a ja bym strzelał, że chodzi mu o to, żeby prostokąt był obiektem-czyli jakąś tam klasą, która ma zdefiniowaną metodę getPole() tak jak bo pisze.
U Ciebie gdzieś tam w jakimś TextFieldach trzymasz długość boków, a wciśnięcie guzika powoduje jakieś tam obliczenia i wpisanie w innego textfielda wyniku.

Chodzi o to, żeby zrobić:
class Prostokąt{
policzPole(){
//tu liczysz pole
}
}
W wyniku naciśnięcia guzika robisz:
Prostokat p=new Prostokat(a,b);
wynik=p.policzPole();

0

Co do wyrysowania prostokąta na podstawie danych to już wiem, doszedłem rano po 10. A co nie ma obiektowości? Jak wcześniej powiedziałem, napisze jeszcze raz i kto powiedział że musi być klasa liczpole()?(nie mówię o bo) Zrobię tak, że na podstawie danych będzie w drugim oknie prostokąt z możliwością ustawienia pozycji. Ja to chcę zaliczyć:) Gdyby to był jakis kolosalny projekt np: na obronę pracy mgr to fakt musiałbym się bardziej postarać.

0

cytuję: "Napisać program wyznaczający pole dowolnego prostokąta (technologia obiektowa)"
z doświadczenia akademickiego swojego i nie tylko wydaje mi się, że facetowi nie chodzi o stworzenie jakiegoś niesamowitego GUI, tylko o stworzenie klasy Prostokąt, która to wszystko będzie robić.
To jak to wywołasz ma mniejsze znaczenie-czy będzie to gui czy linia poleceń.

IMHO to nie chodzi o to, że Ty się więcej czy mniej napracujesz, tylko skoro koleś chce, żeby to było obiektowo, a Twoje tańczy, fika koziołki, a obiektowe nie jest, to jak prowadzący będzie złośliwy, to dostaniesz za to dwóję.

Zresztą to Ty wiesz co facet mówił, ale naprawdę wspominał o programowaniu komponentów i zdarzeń i kazał Ci rysować prostokąt?
imho wszystko co potrzebujesz do zaliczenia to:

 
class Prostokat {

    private float a, b;
    public float obliczPole() {
        return a * b;
    }

    /**
     * Konstruktor
     */
    Prostokat(float a, float b) {
        this.a = a;
        this.b = b;
    }
}

public class Main {

    public static void main(String[] args) {
        Prostokat p = new Prostokat(2, 2);
        System.out.print(p.obliczPole());
    }
}

W obiektowości chodzi o to, żeby Prostokąt trzymać w klasie Prostokąt, która robi w sobie całą magię:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1