Wykres kołowy w JAVIE

Odpowiedz Nowy wątek
2012-11-25 01:50
początkujący_w_Javie
0

Witam,
Mam gorącą prośbę. Mam do napisania aplikację w JAVIE, która ma tworzyć wykres kołowy na podstawie danych wpisywanych z klawiatury za pośrednictwem pola tekstowego. Okienko ma zawierać przyciski Dodaj, Usuń, Start i Stop (do obsługi wątków - obracania się wykresu wokół własnej osi), przewijalną listę wprowadzanych wartości oraz pole tekstowe do wprowadzania danych. Kompletnie nie potrafię się zabrać za to zadanie i liczę na pomoc z Waszej strony.

Z góry dziękuję za jakąkolwiek pomoc.

Pozostało 580 znaków

2012-11-25 10:01
0

Najpierw musisz sobie napisać (lub wyklikać w jakimś gui builderze) szkielecik z polem tekstowym, przyciskami i panelem na którym będzie wykres. Wtedy zgłoś się w tym wątku ponownie z tym co masz lub z konkretnym problemem na tym etapie. Drugim etapem będzie podpięcie zdarzeń, a trzecim samo rysowanie/animacja.


Jeżeli ktoś komuś coś, ewentualnie nikt nikomu nic, to właściwie po co...?

Pozostało 580 znaków

2012-11-25 12:37
początkujący_w_Javie
0

Do tego momentu mam zbudowany "program". Nie wiem jak dalej ruszyć niestety... Szkielet jest taki:

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.List;
import java.awt.TextField;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.GridLayout;
import javax.swing.JList;
import javax.swing.JButton;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class MainWykres extends JFrame {

private JPanel contentPane;
private JTextField Pasek;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                MainWykres frame = new MainWykres();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the frame.
 */
public MainWykres() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 450, 300);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(null);

    JPanel panel = new JPanel();
    panel.setBounds(10, 11, 301, 198);
    contentPane.add(panel);
    panel.setLayout(new GridLayout(1, 0, 0, 0));

    JList list = new JList();
    list.setBounds(322, 11, 110, 167);
    contentPane.add(list);

    JButton Start = new JButton("Start");
    Start.setBounds(24, 232, 89, 23);
    contentPane.add(Start);

    JButton Stop = new JButton("Stop");
    Stop.setBounds(123, 232, 89, 23);
    contentPane.add(Stop);

    JButton Dodaj = new JButton("Dodaj");
    Dodaj.setBounds(222, 232, 89, 23);
    contentPane.add(Dodaj);

    JButton Usun = new JButton("Usun");
    Usun.setBounds(322, 232, 89, 23);
    contentPane.add(Usun);

    Pasek = new JTextField();
    Pasek.setBounds(325, 189, 107, 20);
    contentPane.add(Pasek);
    Pasek.setColumns(10);
}

}

Pozostało 580 znaków

2012-11-25 13:13
0
początkujący_w_Javie napisał(a):

Okienko ma zawierać przyciski Dodaj, Usuń, Start i Stop (do obsługi wątków - obracania się wykresu wokół własnej osi)
Wątki tu nie pasują. Tylko pogorszą sprawę.

Pozostało 580 znaków

2012-11-25 13:23
początkujący_w_Javie
0

Takie mam zadanie niestety... Wykres ma się obracać, po naciśnięciu przycisku START. Ale powiedzmy, że to opcjonalne... Bardziej zależy mi na tym, żeby ten wykres w ogóle się rysował na podstawie tych wartości wpisywanych z klawiatury. Proszę o jakąkolwiek pomoc...

Pozostało 580 znaków

2012-11-25 16:01
0

Takie pytanie, możesz używać zewnętrznych bibliotek?

Pozostało 580 znaków

2012-11-25 19:15
początkujący_w_Javie
0

Hmm, a jakie masz na myśli? "Zajmuję" się programowaniem dosłownie od kilku tygodni i w zasadzie jestem kompletnie zielona... Pracuję na eclipsie i instalowałam jakieś dodatkowe biblioteki, ale nie wiem czy o tym samym mówimy...

Pozostało 580 znaków

2012-11-25 19:21
0

Jest coś takiego jak JFreeChart i jest w stanie rysować wykresy kołowe, ale nie używałem i nie wiem czy spełnia wszystkie wymagania.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

Pozostało 580 znaków

2012-11-25 19:46
0

Jest też JavaFX, w której dodatkowo obracanie wykresu powinno być proste, od niedawna dołączana do najnowszych wydań JDK.

Pozostało 580 znaków

2012-11-25 20:04
początkujący_w_Javie
0
Wibowit napisał(a):

Jest coś takiego jak JFreeChart

Słyszałam o tej bibliotece.

Aczkolwiek obawiam się, że mój prowadzący chce, żebyśmy napisali to "z palca", bez korzystania z bibliotek. I do obracania wykresu chce abyśmy uruchomili odpowiedni wątek...

Pozostało 580 znaków

2012-11-25 23:43
0

Do rysowania jest klasa Graphics i Graphics2D. Można pobrać obiekt dla panelu metodą getGraphics. Potem trzeba na tym narysować wykres z wprowadzonych danych. To nie jest jakieś bardzo trudne, bo do rysowania masz metodę fillArc i wyjdzie śliczny wykres kołowy.
Jak już będzie narysowany, to można na nim wykonywać w osobnym wątku jakieś złożenie transformacji afinicznych (jest klasa AffineTransform), co da efekt obracania. Nie jest to wyjątkowo trudne, ale dość upierdliwe może być w implementacji. Składanie transformacji to też droga przez mąkę, bo intuicja się na nic nie przyda. No ale popatrz na to tak, że i tak musisz to zrobić, więc jakoś to będzie.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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