Greg Napisano 13 Maja 2008 Udostępnij Napisano 13 Maja 2008 I tak zrobilem Przy uzyciu biblioteki JFreeChart, wystarczy sobie zrobic metode, ktora zwroci wspolrzedne dla funkcji i jazda public CombinedXYPlotDemo1(final String title) { super(title); final JFreeChart chart = createCombinedChart(); final ChartPanel panel = new ChartPanel(chart, true, true, true, false, true); panel.setPreferredSize(new java.awt.Dimension(500, 270)); setContentPane(panel); } private JFreeChart createCombinedChart() { XYDataset dataSet = initDataset(); XYSplineRenderer splineRenderer = new XYSplineRenderer(); NumberAxis yAxis = new NumberAxis("Y Axis"); yAxis.setAutoRangeIncludesZero(false); XYPlot subPlot = new XYPlot(dataSet, null, yAxis, splineRenderer); subPlot.setRangeAxisLocation(AxisLocation.TOP_OR_LEFT); CombinedDomainXYPlot mainPlot = new CombinedDomainXYPlot( new NumberAxis("X Axis")); mainPlot.setGap(10.0); mainPlot.add(subPlot, 1); mainPlot.setOrientation(PlotOrientation.VERTICAL); return new JFreeChart("Spline Plot Example", JFreeChart.DEFAULT_TITLE_FONT, mainPlot, true); } private XYDataset initDataset() { final XYSeries dataset = new XYSeries("Y = X (do kwadratu :d)"); dataset.add(0, 0); dataset.add(1, 1); dataset.add(2, 4); dataset.add(3, 9); dataset.add(4, 16); dataset.add(5, 25); dataset.add(6, 36); return new XYSeriesCollection(dataset); } public static void main(final String[] args) { final CombinedXYPlotDemo1 demo = new CombinedXYPlotDemo1( "Y = X (do kwadratu :d)"); demo.pack(); RefineryUtilities.centerFrameOnScreen(demo); demo.setVisible(true); } wynik dzialania: http://img521.imageshack.us/my.php?image=splinedemorz1.jpg Okazalo sie latwiejsze niz myslalem, bo usprawnili biblioteke o renderer rysujacy krzywe miedzy poszczegolnymi punktami. Wczesniej trzeba bylo sie narobic ostro Cytuj Odnośnik do komentarza
og02r Napisano 27 Maja 2008 Udostępnij Napisano 27 Maja 2008 Mam takie małe pytanie, mam taki układ ramki NORTH CENTER EAST rozmiar ramki robi się automatycznie na podstawie rozdzielczości ekranu, 80%, czyli dla 1024x768 to będzie to odpowiednio nieco mniejsze I teraz pytanie, w jaki sposób mogę określić szerokość panelu CENTER? W panelu EAST będzie jakiś text area, czy mogę jakoś % czy w pix określić jaka ma być szerokość EAST? Cytuj Odnośnik do komentarza
xemi Napisano 29 Maja 2008 Autor Udostępnij Napisano 29 Maja 2008 Mam takie małe pytanie, mam taki układ ramkiNORTH CENTER EAST rozmiar ramki robi się automatycznie na podstawie rozdzielczości ekranu, 80%, czyli dla 1024x768 to będzie to odpowiednio nieco mniejsze I teraz pytanie, w jaki sposób mogę określić szerokość panelu CENTER? W panelu EAST będzie jakiś text area, czy mogę jakoś % czy w pix określić jaka ma być szerokość EAST? a najlepiej poprobuj i z % i z px, zobaczysz jakie efekty i co ci bardziej pasuje;) ale troche topornie to opisales i do konca nie czaje o co ci chodzi;) moze kod wrzuc samych ramek i opisz dokladniej jai hcesz miec uklad i jakie wymiary. Cytuj Odnośnik do komentarza
og02r Napisano 29 Maja 2008 Udostępnij Napisano 29 Maja 2008 Kod ma 500 linijek więc raczej nie opłaca się go wrzucać Chodzi o to, że: - mam 3 ramki *północną, gdzie jest parę przycisków koło siebie *centralną, gdzie jest narysowana szachownica *wschodnią, gdzie mam 2 przyciski Teraz pytanie, czy mogą jakoś określić jakie są wymiary poszczególnych ramek, albo samemu je jakoś precyzyjnie ustalić. Bo póki co mam dane samo contentPane.add(rysuj, BorderLayout.CENTER); co raczej nie pozwala na ustawienie szerokość ramki center, bądź east. Cytuj Odnośnik do komentarza
Manort Napisano 29 Maja 2008 Udostępnij Napisano 29 Maja 2008 Program: Uzytkownik wprowadza z klawiatury 4 dane - imie, nazwisko, zarobki, staz. Program lapie dane 4 osob kolejno wprowadzonych, sortuje po nazwisku i wypisuje na ekranie przykladowo: Kasia Nowacka 1900 2 lata Chce to zrobic za pomoca tablicy + Scanner. I tu moje pytanie czy to wykonalne? Narazie napisalem tyle. Za wszelkie wskazowki i pomoc serdecznie dziekuje . import java.util.*; import java.io.*; public class dane { public static void main(String[] args) { char string [] = "imie"; char string [] = "nazwisko"; char string [] = "staz"; char string [] = "zarobki"; Scanner wejscie=new Scanner(System.in); System.out.println("Podaj kolejno imie, nazwisko, zarobki i staz pracy:"); if(wejscie.hasNextChar()){ imie=wejscie.nextChar(); } if(wejscie.hasNextChar()){ nazwisko=wejscie.nextChar(); } if(wejscie.hasNextChar()){ staz=wejscie.nextChar(); } if(wejscie.hasNextChar()){ zarobki=wejscie.nextChar(); } System.out.println("sre"); } Cytuj Odnośnik do komentarza
Fenomen Napisano 1 Czerwca 2008 Udostępnij Napisano 1 Czerwca 2008 ja bym to zrobil StreamTokenizerem i do tego zapisywalbym te dane do jakiegos zbioru kolekcji bo tam mozna bardzo latwo i szybko te dane posortowac jeszcze takie pytanie: programowal ktos kiedys w asemblerze? potrzebuje napisac w nim program mnozacy macierze dowolnego rozmiaru edyta daje rozwiazanie: package Manort; /** * * @author Fenomen */ public class Person implements Comparable{ String surname; String name; int salary; int experience; Person(String surname, String name, int salary, int experience) { this.surname = surname; this.name = name; this.salary = salary; this.experience = experience; } public String getSurname() {return surname;} public String getName() {return name;} public int getSalary() {return salary;} public int getExperience() {return experience;} public void setSurname(String surname) {this.surname = surname;} public void setName(String name) {this.name = name;} public void setSalary(int salary) {this.salary = salary;} public void setExperience(int experience) {this.experience = experience;} @Override public String toString() { return surname + ", "+name+", "+salary+" zl, "+experience+"."; } public int compareTo(Object p) { Person person = (Person)p; if (this.surname.equals(person.surname)) { if (this.name.equals(person.name)) { if (this.salary == person.salary) { return (this.experience - person.experience); } return (this.salary - person.salary); } return (this.name.compareTo(person.name)); } return (this.surname.compareTo(person.surname)); } } package Manort; /** * * @author Ja */ import java.util.*; import java.io.*; public class PersonList { private ArrayList<Person> list; private int numberofpeople; PersonList(int numberofpeople) { this.numberofpeople = numberofpeople; list = new ArrayList<Person>(numberofpeople); } public void addPerson(String surname, String name, int salary, int experience) { list.add(new Person(surname, name, salary, experience)); } public void sort() { Collections.sort(list); } public void print() { for (int i=0; i<numberofpeople; i++) System.out.println(list.get(i)); } } package Manort; /** * * @author Ja */ import java.io.*; public class Main { public static void main(String [] args) throws IOException { StreamTokenizer input = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); String surname, name; int salary, experience; System.out.println("Ile osob chcesz wpisac: "); input.nextToken(); int number = (int)input.nval; PersonList personlist = new PersonList(number); for (int i=0; i<number; i++) { System.out.println("Podaj nazwisko"); input.nextToken(); surname = input.sval; System.out.println("Podaj imie"); input.nextToken(); name = input.sval; System.out.println("Podaj pensje"); input.nextToken(); salary = (int)input.nval; System.out.println("Podaj doswiadczenie"); input.nextToken(); experience = (int)input.nval; personlist.addPerson(surname, name, salary, experience); } System.out.println("Po wstawieniu:"); personlist.print(); personlist.sort(); System.out.println("po posortowaniu"); personlist.print(); } } dolaczam jeszcze przykladowy wydruk: init:deps-jar: compile-single: run-single: Ile osob chcesz wpisac: 3 Podaj nazwisko Nowak Podaj imie Jan Podaj pensje 1000 Podaj doswiadczenie 9 Podaj nazwisko Kowalski Podaj imie Marian Podaj pensje 1900 Podaj doswiadczenie Podaj nazwisko 7 Podaj imie Araszczuk Zygmunt Podaj pensje 1200 Podaj doswiadczenie 5 Po wstawieniu: Nowak, Jan, 1000 zl, 9. Kowalski, Marian, 1900 zl, 7. Araszczuk, Zygmunt, 1200 zl, 5. po posortowaniu Araszczuk, Zygmunt, 1200 zl, 5. Kowalski, Marian, 1900 zl, 7. Nowak, Jan, 1000 zl, 9. BUILD SUCCESSFUL (total time: 31 seconds) Cytuj Odnośnik do komentarza
Manort Napisano 1 Czerwca 2008 Udostępnij Napisano 1 Czerwca 2008 Thx . Pisalem to dla kolegi i taki ostatecznie dalem mu efekt. import javax.swing.*; import java.util.*; class Osoba1 { String nazwisko; float staz; String imie; float zarobki; //Tworzy zmienne typu string (znakowy) static int ile_obiektow = 0; public void Inicjuj() {ile_obiektow++;} public void Nadaj_nazwisko(String lan) { nazwisko=lan;} public String Podaj_nazwisko() //Wszystkie publiki - tworzy zmienne publiczne {return nazwisko;} public void Nadaj_imie(String lan) { imie=lan;} public String Podaj_imie() {return imie;} public void Nadaj_staz(float staz_) { staz=staz_;} public float Podaj_staz() {return staz;} public void Nadaj_zarobki(float zarobki_) { zarobki=zarobki_;} public float Podaj_zarobki() {return zarobki;} public void Wstaw() { String S; Inicjuj(); S = JOptionPane.showInputDialog(null, "Podaj nazwisko"); // wyswietla komunikat bys podal dane Nadaj_nazwisko(S); //Pobiera dane S = JOptionPane.showInputDialog(null, "Podaj staz"); // wyswietla komunikat bys podal dane Nadaj_staz(Float.parseFloat(S)); //Pobiera dane S = JOptionPane.showInputDialog(null, "Podaj imie"); // wyswietla komunikat bys podal dane Nadaj_imie(S); //Pobiera dane S = JOptionPane.showInputDialog(null, "Podaj zarobki"); // wyswietla komunikat bys podal dane Nadaj_zarobki(Float.parseFloat(S)); //Pobiera dane } public void Wyswietl() { String napis=""; napis+="\n Nazwisko: "+nazwisko; napis+="\n Średnia: "+staz; napis+="\n Imie: "+imie; napis+="\n Zarobki: "+zarobki; napis+="\n Liczba osób jest równa "+ile_obiektow; JOptionPane.showMessageDialog(null, napis); } } import javax.swing.*; import java.util.*; public class Cala{ static public void main(String args[]) {Osoba1 os1 = new Osoba1(); os1.Wstaw(); os1.Wyswietl(); System.exit(0); } } Powiedzialem mu by dopisal sobie petle ile osob ma powtarzac i dodal sortowanie. Ja juz mam zaliczone Programowanie Cytuj Odnośnik do komentarza
Greg Napisano 2 Czerwca 2008 Udostępnij Napisano 2 Czerwca 2008 u mnie ten kolega by nie zaliczyl ;d Chocby ze wzgledu na takie pozorne pierdoly jak: - konwencja: nazwy klas piszemy z duzej, nazwy metod zaczynamy z malych liter i w ogole w Javie obowiazuje zasada "wielblada" - jesli chcemy miec metode "pobierz dane misia" to nazywamy ta metode: pobierzDaneMisia, a nie PobierzDaneMisia, nie Pobierz_dane_misia itd. To sa podstawy - zamiast metod Podaj_Imie, Nadaj_Imie zrobilbym tzw. gettery/settery, akcesory, mutatory, czyli getImie, setNazwisko - mechanizm getterow/setterow jest bardzo czesto wykorzystywany przez rozne Frameworki (np. Spring Framework) i jest to, podobnie jak pierwszy punkt, standardem w Javie (mimo, ze tez ma przeciwnikow bo tak naprawde troche lamie zasady obiektowosci). Oczywiscie mozna tego nie wiedziec, ale od tego jest wykladowca, aby to powiedzial. Jak nie powiedzial to znaczy, ze to dupa, a nie wykladowca. Ze juz nie wspomne o tak banalnej wydawaloby sie sprawie jak czytelnosc kodu Cytuj Odnośnik do komentarza
Fenomen Napisano 2 Czerwca 2008 Udostępnij Napisano 2 Czerwca 2008 a ja mam takie pytanko do fachowcow: ktos wie jak powinno wygladac usuwanie elementow w b-drzewie? znam teorie ale nie potrafie tego zaimplementowac Cytuj Odnośnik do komentarza
xemi Napisano 17 Października 2008 Autor Udostępnij Napisano 17 Października 2008 Witam. Mam pytanko, jak i czy w ogole da sie czytac dane z pliku przez JavaScript? Nie pytajcie czemy przez JS, a nie przez php, ale wlasnie chodzi mi o JS. Cytuj Odnośnik do komentarza
Fenomen Napisano 17 Października 2008 Udostępnij Napisano 17 Października 2008 Byc moze tutaj znajdziesz rozwiazanie problemu Cytuj Odnośnik do komentarza
jasonx Napisano 18 Października 2008 Udostępnij Napisano 18 Października 2008 Pytanie lamera #include "stdafx.h" int dodaj (int, int); int main(int argc, char* argv[]) { int x,y,wynik; wynik=0; printf("podaj pierwsza liczbę: "); scanf("%d",&x); printf("Podaj druga liczbe: "); scanf("%d",&y); wynik=dodaj(x,y); printf("\nSuma: %d\n",wynik); return 0; } int dodaj (int x, int y) { return x+y; } Co zrobic, zeby debugowanie mi sie nie zamykalo od razu.. (nie zdaze nawet zobaczyc wyniku na ekranie) Cytuj Odnośnik do komentarza
Fenomen Napisano 19 Października 2008 Udostępnij Napisano 19 Października 2008 nie jestem pewien ale przed zamknieciem klamry w funkcji dodaj chyba musisz dopisac getch(); Cytuj Odnośnik do komentarza
Fenomen Napisano 20 Października 2008 Udostępnij Napisano 20 Października 2008 Krotka pilka: czemu po uruchomieniu tego kodu (java) nie wyswietla mi sie przycisk "Load image"? :| edit: problem rozwiazany (jakubkwa :* ) package graphics1; import java.awt.*; import javax.swing.*; import java.awt.event.*; class Panel extends JPanel { public static final long serialVersionUID = 123456L; public void paintComponent(Graphics g) { } } public class Graphics2 implements ActionListener { JFrame window; JPanel panel; JButton drawlinebutton; JButton drawrectanglebutton; JButton loadimagebutton; JButton exitbutton; public static void main(String[] args) { Graphics1 graphics1 = new Graphics1(); graphics1.userInterface(); } public void userInterface() { window = new JFrame(); window.setTitle("Graphics1"); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.setLocation(100, 100); window.setSize(800, 600); panel = new Panel(); panel.setSize(window.getSize()); panel.setVisible(true); drawlinebutton = new JButton("Draw line"); drawlinebutton.setSize(drawlinebutton.getPreferredSize()); drawlinebutton.setLocation(50, 100); drawlinebutton.addActionListener(this); drawrectanglebutton = new JButton("Draw rectangle"); drawrectanglebutton.setSize(drawrectanglebutton.getPreferredSize()); drawrectanglebutton.setLocation(50, 200); drawrectanglebutton.addActionListener(this); loadimagebutton = new JButton("Load image"); loadimagebutton.setSize(loadimagebutton.getPreferredSize()); loadimagebutton.setLocation(50, 300); loadimagebutton.addActionListener(this); exitbutton = new JButton("Exit"); exitbutton.setSize(exitbutton.getPreferredSize()); exitbutton.setLocation(50, 400); exitbutton.addActionListener(this); panel.add(drawlinebutton); panel.add(drawrectanglebutton); panel.add(loadimagebutton); panel.add(exitbutton); window.getContentPane().add(panel); window.setVisible(true); } public void actionPerformed(ActionEvent event) { Graphics2D graphics2d = (Graphics2D)panel.getGraphics(); Object source = event.getSource(); if (source == drawlinebutton) { graphics2d.setXORMode(Color.white); graphics2d.setStroke(new BasicStroke(5)); graphics2d.setColor(new Color(0, 255, 255)); graphics2d.drawLine(300, 300, 400, 400); } else if (source == drawrectanglebutton) { graphics2d.setXORMode(Color.white); graphics2d.setStroke(new BasicStroke(3)); graphics2d.setColor(new Color(255, 0, 0)); Rectangle rect = new Rectangle(100, 100, 100, 100); graphics2d.fill(rect); } else if (source == loadimagebutton) { System.exit(-1); } else if (source == exitbutton) { System.exit(-1); } } } Cytuj Odnośnik do komentarza
jasonx Napisano 21 Października 2008 Udostępnij Napisano 21 Października 2008 Jaka komenda (i z jakiej biblioteki) w C++ czyści ekran? Cytuj Odnośnik do komentarza
Fenomen Napisano 21 Października 2008 Udostępnij Napisano 21 Października 2008 clrscr()? Edyta podpowiada ze jednak nie: #include <stdlib.h> system ("cls"); Cytuj Odnośnik do komentarza
Gabe Napisano 21 Października 2008 Udostępnij Napisano 21 Października 2008 system("cls"). Bez nagłówkowego. Cytuj Odnośnik do komentarza
Manort Napisano 25 Października 2008 Udostępnij Napisano 25 Października 2008 Programowanie na 2 roku czas zaczac again :| Tym razem tez potrzebuje malej pomocy. Zalozenie jest dosc proste. Program ma wypisac 20 pierwszych liczb ciagu Fibonacciego. Narazie zrobilem tyle.. public class Fib20 { public static int fib(int n){ if ((n==1)||(n==2)) return 1; else return fib(n-1)+fib(n-2); } public static void main(String[] args) { int n; System.out.println("Podaj, ile wyrazow ciagu Fibonacciego obliczyc i wypisac"); [???] System.out.println(n+"-ty wyraz ciagu Fibonacciego: "+fib(n)); return; } } Nie musi byc zczytywana wartosc n z klawiatury. Moze byc algorytm w srodku liczacy. Z gory dziekuje Jak ja tego Programowania nienawidze.. Cytuj Odnośnik do komentarza
Fenomen Napisano 26 Października 2008 Udostępnij Napisano 26 Października 2008 Efektywniej, bez uzycia rekurencji: /** * * @author Fenomen */ public class Fibonacci { public static int Fib(int n) { int first = 1; int second = 1; if (n == 1) return 1; else if (n == 2) return 2; else { for (int i=3; i<=n; i++) { second += first; first = second - first; } } return second; } public static void main(String[] args) { int n=6; System.out.println("Wartosc ciagu Fibonacciego dla "+n+" wynosi "+Fib(n)); } } Cytuj Odnośnik do komentarza
ferr Napisano 26 Października 2008 Udostępnij Napisano 26 Października 2008 Efektywniej, bez uzycia rekurencji: [...] if (n == 1) return 1; else if (n == 2) return 2; else { for (int i=3; i<=n; i++) { second += first; first = second - first; } } return second; [...] Jak juz o efektywnosci mowimy: if (n > 0 && n < 3) return n; for (int i=3; i<=n; i++) { second += first; first = second - first; } return second; } Cytuj Odnośnik do komentarza
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.