itselo Geschrieben 9. Juli 2011 Teilen Geschrieben 9. Juli 2011 tagchen, hatte diesen Monatg ein Vorstellungsgespräch bei der Firma Bosch für ein 1 jähriges Pflichtpraktikum und die haben mir um mein Wissensstand in java zu prüfen eine Hausaufgabe gegeben die ich in 2 Wochen erledigen muss, als Aufgabenstellung ist ein Programm zu erstellen das mit einem Slider rechts die Thermometer flüssigkeit links nach oben erhöht wird. Das Thermometer ist links mit labels versehen die die Zahlen 35, 36,5 , 37,5 und 42 haben, erreicht die Flüssigkeit den bereich zwischen 36,5 und 37,5 nimmt die Flüssigkeit die farbe Grün an, steigt sie jedoch über den wert 37,5 nimmt sie die farbe rot an, die Grundfarbe ist Blau und die Flüssigkeit fängt von 0 an, das Programm soll später in SWT erstellt werden und in einer Emulator Konsole von Android SDk ausgegeben werden. Hab bisher das Android SDk Kit für Java Eclipse installiert und geupdatet, alles nötige hab ich drauf, aber bisher hatte ich nie mit SWT gearbeitet da hab ich sonst keine nützliche Info ausm Internet finden können wie ich am besten anfangen kann. Hab es deshalb mit Swing probiert und kam ziemlich gut voran nur hab das Problem das ich den JSlider egal ob nach rechts oder links geschoben den gleichen effekt erziele, die flüssigkeit sollte aber wenn ich den Slider nach links verschiebe runtersinken und nicht weiter hoch, habs alles mögliche versucht aber nicht hinbekommen, und ich schaffe es nicht das richtige rechteck zu färben mit fillrect färbt sich das Rechteck nur dann wenn die flüssigkeit den Thermometer überschreitet, echt komisch, könnt ihr mir da vllt behilflich sein bitte. Dankeschön im vorraus. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schiller256 Geschrieben 9. Juli 2011 Teilen Geschrieben 9. Juli 2011 Vielleicht stellst du mal den relevanten Code zur Verfügung denn so ist das nur Raten was du denn programmiert hast. Was ich auch nicht ganz verstehe ist was du mit SWT und der Android SDK machen willst. Denn SWT läuft nicht auf dem Android! Mit SWT kannst du wie mit AWT nativ aussehende grafische Oberflächen erstellen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
itselo Geschrieben 9. Juli 2011 Autor Teilen Geschrieben 9. Juli 2011 (bearbeitet) Hier ist der code: package std; import java.awt.BorderLayout; import java.awt.Canvas; import java.awt.Color; import java.awt.Graphics; import java.awt.GridLayout; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.ArrayList; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JSlider; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class Fenster extends JFrame{ public Thermometer th; public JLabel lbl1; public JLabel lbl2; public JLabel lbl3; public JLabel lbl4; /*int xpos = 50; int ypos = 80; int breit = 100;*/ int hoch = 200; int min = -200; int max = 200; public String sliderposmin; public String sliderposmax; JSlider slider = new JSlider(); ArrayList<Rechteck> formen = new ArrayList<Rechteck>(); public Fenster(){ setSize(600, 400); setLayout(null); addWindowListener(new WindowAdapter() { @Override public void windowClosed(WindowEvent e) { System.exit(0); } }); lbl1 = new JLabel("42"); lbl1.setBounds(30, 80, 15, 15); add(lbl1); lbl2 = new JLabel("37,5"); lbl2.setBounds(25, 170, 25, 25); add(lbl2); lbl3 = new JLabel("36,5"); lbl3.setBounds(25, 210, 25, 25); add(lbl3); lbl4 = new JLabel("35"); lbl4.setBounds(30, 265, 15, 15); add(lbl4); th = new Thermometer(); add(th); Rechteck einRechteck = new Rechteck(50, 80, 100, 200); formen.add(einRechteck); Rechteck flussig = new Rechteck(50, 80, 100, hoch); formen.add(flussig); slider = new JSlider(min, max); slider.setBounds(270, 100, 250, 200); add(slider); slider.setMinimum(0); slider.setMaximum(40); slider.setValue(0); slider.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { int value = slider.getValue(); if(slider.getValue() > 0){ //String str = Integer.toString(value); //label.setText(str); formen.get(1).setHoehe(hoch); hoch = (hoch -5); } else { System.out.println("los"); formen.get(1).setHoehe(hoch); hoch = (hoch +5); } if(value == 40){ System.out.println("nein"); formen.get(1).setHoehe(hoch); hoch = (hoch -5); } th.repaint(); } }); } public class Thermometer extends Canvas{ public Thermometer(){ setSize(200, 300); } @Override public void paint(Graphics g) { for( int i = 0; i < formen.size(); i++){ //g.fillRect(50, 250, 100, hoch); formen.get(i).paint(g); } //g.drawRect(50, 80, 100, 200); //g.drawRect(50, 80, 100, 100); } } } ja gut, reicht auch wenn ich eine SWT version habe und die Swing Version dann im Emulator ausgebe, mit der Pixelgröße 1280 x 800. Man hat mir nämlich nur gesagt ich soll Adnroid drauf installieren und das programm dann in nem Emulator ausgeben. Bearbeitet 9. Juli 2011 von flashpixx Code-Tags Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 9. Juli 2011 Teilen Geschrieben 9. Juli 2011 Ich vermute mal das du das falsch verstanden hast. Wie soll der jetzige Code im Android-Emulator ausgeführt werden? Wenn das später auf Android kannst du außer die theoretische Logik keine Programmbestandteile deines jetzigen Codes mitnehmen. Was für Funktionen fehlen momentan in deinem Code bzw. was funktioniert noch nicht? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
itselo Geschrieben 9. Juli 2011 Autor Teilen Geschrieben 9. Juli 2011 (bearbeitet) Ja tut mir leid aber ich hab echt null Ahnung von diesem Android, hab jetzt erstmal angefangen das Programm auf Swing zu schreiben, und vllt könnt ihr mir da behilflich sein wie ich nachher das programm (von mir aus ohne die codes) im Android übernehmen kann. Weil die haben es auf jedenfall erwähnt gehabt das ich dieses Thermometer Programm im Emulator ausgeben soll. 1. Frage In der stateChanged Methode fehlt noch die Abfrage des Reglers also, das wenn ich den regler nach links schiebe das es runter zählt, weil egal ob ich den regler jetzt nach rechts oder links schiebe zählt er um +5 positionen hoch, wie kann ich die Links Richtung abfragen ? 2. Frage ich hab wie in den Codes beschrieben 2 Rechtecke gezeichnet einmal "einRechteck" und einmal "flussig", und ich hab versucht das Rechteck "einRechteck" mit fillrect zu füllen so das wenn ich mit der Height von dem 2. Rechteck "flussig" mit dem Slider spiele, die farbe dann hoch und runter sinkt, also kurz gesagt sollte das 2. Rechteck flussig als Maske dienen, nur hat er dann die Rechteck fläche ganz gefüllt. ich will das gefüllte Rechteck unter dem 2. Rechteck legen und das 2. als Maske verwenden. Könnt ihr mir da ein Rat geben wies geht. dankeschön im Vorraus Bearbeitet 9. Juli 2011 von itselo Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 9. Juli 2011 Teilen Geschrieben 9. Juli 2011 Benutze bitte die Code-Tags, ich habe sie nachträglich eingefügt. Du solltest für die GUI "Android Widget" verwenden, da Swing und AWT von Android nur teilweise unterstützt werden (AWT wohl mehr als Swing). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 11. Juli 2011 Teilen Geschrieben 11. Juli 2011 Ich würde es auch für mehr als Sinnvoll erachten, wenn du für den Slider und für die grafische Darstellung das selbe Model für die Daten nimmst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
itselo Geschrieben 11. Juli 2011 Autor Teilen Geschrieben 11. Juli 2011 OK und wie kann ich jetzt mein Programm das in Swing geschrieben wurde jetzt für android umwandeln? Weil hab bisher Android nicht verwendet und hab kein Plan wie ich das bewerkstelligen soll, vorallem die Tutorials oder infos über Androids eigene Sprache zu lernen dauert bestimmt sehr lange, weil ich hätte nur noch diese Woche bis ich das Programm an Bosch schicken muss. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 11. Juli 2011 Teilen Geschrieben 11. Juli 2011 Umwandeln geht nicht, Du musst die GUI, wie schon geschrieben, mit "Android Widgets" erstellen. Tutorials dafür findest Du im Netz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
itselo Geschrieben 12. Juli 2011 Autor Teilen Geschrieben 12. Juli 2011 ja toll dann hab ichs ja umsonst in Swing programmiert, ist es überhaupt leichter das in Android zu programmieren? Wenn ja könnt ihr mir vllt behilflich sein, hab nicht mehr viel Zeit für Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 12. Juli 2011 Teilen Geschrieben 12. Juli 2011 Du möchtest vielleicht erst einmal eine Suchmaschine Deiner Wahl verwenden und dort mal nach "Android Widget" o.ä. suchen. Es gibt dafür unzählige Tutorials Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
itselo Geschrieben 12. Juli 2011 Autor Teilen Geschrieben 12. Juli 2011 (bearbeitet) Oki, hab ne Tut gefunden und es hat wie scheint fehler gegeben hier ist der Tut: http://www.helloandroid.com/files/xmaswidget/android_howto-hellowidget.pdf Page 3 ist es und hier der Fehler, <receiver android:name=".HelloWidget" android:label="@string/app_name"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/hallo_widget_provider" /> </receiver> Hier unterstreicht er mir das "@xml/hallo_widget_provider" mit rot und gibt den Fehler error: Error: No resource found that matches the given name(at 'resource' with the value '@xml/hallo_widget_provider'). hab es genauso wie im Tut beschrieben eingefügt aber der zeigt mir diesen nervigen Fehler an, kann auch nicht weiterarbeiten weil ich meine App nicht starten kann. Bearbeitet 12. Juli 2011 von flashpixx Code-Tags Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schiller256 Geschrieben 13. Juli 2011 Teilen Geschrieben 13. Juli 2011 Hast du denn die Datei res/xml/hello_widget_provider.xml mit folgenden Inhalt erstellt? <?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="146dip" android:minHeight="72dip" android:updatePeriodMillis="10000" android:initialLayout="@layout/main" /> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.