Programm mit Elementen aus High-Level API und Low-Level API

Status
Nicht offen für weitere Antworten.

rumkugeln

Mitglied
Ich möchte ein Programm schreiben, bei dem sich im oberen Teil des Bildschirms eine Linie bewegt und im unteren Teil des Bildschirmes soll man auswählen können wie schnell sich die Linie bewegt. Dazu möchte ich ein Textfeld nutzen. Nun hab ich in meinem Programmierbuch gelesen, das eine Vermischung von High-Level und Low-Level API nicht möglich ist.
Wie kann ich das dennoch realisieren?
 

Marco13

Top Contributor
Bei dem Gedanken, dass du "High"- und "Low"-Level auf die "hohe" und "niedrige" Position auf dem Bildschirm beziehst, könnt' ich mich .... rumkugeln :lol:

Ne, beschreib' mal genauer, was du meinst :)
 

rumkugeln

Mitglied
Wie kannst du es wagen dich über meinen Nicknamen lustig zu machen??? :D Scherz!

Also was ich unter High-Level API verstehe sind Oberflächenelemente wie Textfelder und diese Radio-Buttons usw.
Low Level APi Elemente soviel ich weiß z.B einfache Linien und Rechtecke usw.

Und ich möchte ein Programm schreiben, wo auf dem Bildschirm eine einfache Linie zu sehen ist und ein Textfeld.
 

Schandro

Top Contributor
dumdideldei... meinste sowas?
Java:
public class XXX{

    public static void main(String[] args){
        new XXX();}


    private JFrame window;
    private JPanel panel;
    private JTextField inputField;
    private int cnt; // wird zur Kommunikation ziwschen dem animationThread und paintComponent benutzt

    public XXX(){
    	window = new JFrame();
        window.setBounds(100,100,400,200);

        panel = new JPanel();
        window.add(panel);

        panel.setLayout(new BorderLayout());


        panel.add(drawPanel,BorderLayout.CENTER);

        inputField = new JTextField("5");
        panel.add(inputField,BorderLayout.SOUTH);




        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                window.setVisible(true);
            }
        });

        Thread animationThread = new Thread(new Runnable(){
            public void run(){
                while(true){

                    try{
						cnt += Integer.parseInt(inputField.getText());
						inputField.setForeground(Color.BLACK);
					}
					catch(NumberFormatException e){
						inputField.setForeground(Color.RED);
						// Benutzer sieht außerdem das sich nix bewegt...
					}


                    drawPanel.repaint();

					if(cnt > panel.getSize().width){
						cnt = 0;
					}

                    try{
                        Thread.sleep(10);
                    }catch(InterruptedException e){
                        e.printStackTrace();
                    }
                }
            }
        });
        animationThread.start();
    }


    private JPanel drawPanel = new JPanel(){
        public void paintComponent(Graphics g){
            super.paintComponent(g);

            g.setColor(Color.BLACK);
            g.fillRect(cnt,50,50,50);
        }
    };

}
 

Marco13

Top Contributor
Jo kein Problem eigentlich
Code:
// Panel das eine Linie malt
class LinePanel extends JPanel
{
    private Point p0 = new Point(); // Setter hierfür anbieten
    private Point p1 = new Point();

    public void paintComponent(Graphics g)
    {
        super.paintComponent(g);

        // Linien oder sonstwas malen
        g.drawLine(p0.x, p0.y, p1.x, p1.y);
    }
}

class Main extends JFrame
{
    private LinePanel linePanel;

    public Main()
    {
        getContentPane().setLayout(new BorderLayout());

        // Hauptbereich: Das LinePanel
        linePanel = new LinePanel();
        getContentPane().add(linePanel, BorderLayout.CENTER);

        // Unten ein Button
        JButton someButton = new JButton("...");
        getContentPane().add(someButton, BorderLayout.SOUTH);

    }

}


Siehe auch Trail: Creating a GUI with JFC/Swing (The Java™ Tutorials)
 

Marco13

Top Contributor
@Schandro: Wenn ich mal Zeit habe (... ha ...) mache ich mal einen FAQ- oder Blog-Eintrag mit den "Stubs" für diese immer wiederkehrenden Probleme:
1. Einfach irgendwas Zeichnen (z.B. ein Image)
2. Etwas animiert Zeichnen
3. Etwas anklickbar Zeichnen
Dann kann man in Zukunft immer verlinkten - deine XXX-Klasse taucht hier inzwischen SO auf auf, dass die ganzen armen Leute auf der verzweifelten Suche nach Pornos immer auf java-forum.org landen :D
 

rumkugeln

Mitglied
Ja das meine ich. Aber... bin ich falsch informiert oder habt ihr da in J2SE geschrieben? Das nüzt mir ja nix, der Beitrag hier ist nämlich im J2ME Unterforum. Oder geht das da auch?
 

Schandro

Top Contributor
deine XXX-Klasse taucht hier inzwischen SO auf auf, dass die ganzen armen Leute auf der verzweifelten Suche nach Pornos immer auf java-forum.org landen
jetzt musste ich mich rumkugeln:lol:^^

Ja, so ein Blog/FAQ Eintrag wär echt was gutes. Ist nur die Frage, ob dort lieber ein javax.swing.Timer statt dem Thread benutzt werden sollte. Gibt ja unterschiedliche Meinungen dazu. Ich persönlich find Thread besser, da es imho für Anfänger verständlicher ist und dazu anregt sich mal in das wichtige Thema Multithreading reinzulesen.

Das nüzt mir ja nix, der Beitrag hier ist nämlich im J2ME Unterforum
tschuldigung, nicht gesehen, hab nur die "Neue Beiträge auflisten" Funktion benutzt und deswegen nicht auf das Unterforum geachtet.
 

rumkugeln

Mitglied
Also ich möchte ja niemanden drängen, aber ich stehe etwas unter Zeitdruck...
Also wenn ihr mir weiterhelfen könnt, wäre ich euch sehr verbunden! ;)
 

ice-breaker

Top Contributor
Aber gerne doch:
Nein High- und LowLevel-API sind nicht mischbar, deine Textfelder musst du selbst mit der LowLevel-API programmieren.
Es gibt da einige Libraries, die HighLevel-Komponenten mit der LowLevel-API implementieren, diese stehen aber unter der GPL oder sind verdammt teuer, und ob du damit realisieren kannst, was du möchtest, kann ich dir auch nicht sagen.
 

rumkugeln

Mitglied
Also, ich hab jetzt herausgefunden, das man das auch mit JME Polish machen könnte, aber das ist zu umständlich. Ich werde einfach den grafischen Anteil auf ne andere Form bringen.
 

oldshoe

Bekanntes Mitglied
irgendwie kann ich mir nicht so richtig vorstellen, was du machen möchtest...
kannst du vielleicht mit einem Grafikprogramm was zurechtschieben, um zu verdeutlichen wie es später aussehen soll?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Fertiges Programm auf dem Telephon zum Laufen bringen - wie? Android & Cross-Platform Mobile Apps 13
V Kennt jemand ein Programm , um .DEX Dateien zu öffnen, bearbeiten und wieder speichern? Android & Cross-Platform Mobile Apps 2
T Android Programm zu Android-App Android & Cross-Platform Mobile Apps 4
B Wo lege ich im Programm texdteien oder ini's ab Android & Cross-Platform Mobile Apps 16
J Programm zum prüfen auf AppUpdates Android & Cross-Platform Mobile Apps 7
Y Erstes kleines Android Programm will nicht so recht... Android & Cross-Platform Mobile Apps 1
F Android USB Verbindung zu Windows Programm Android & Cross-Platform Mobile Apps 3
X Android Befehle an einem PC-Programm schicken Android & Cross-Platform Mobile Apps 4
M Android Android Programm mehr Speicher zuweisen Android & Cross-Platform Mobile Apps 4
S Android Programm pausieren lassen Android & Cross-Platform Mobile Apps 2
M Frage zu Java Programm für Windows Mobile 6.5 Android & Cross-Platform Mobile Apps 2
P Android Programm stürzt ab - Es geht um Netzwerk Android & Cross-Platform Mobile Apps 5
S Programm, daß auf eingehende Anrufe reagiert Android & Cross-Platform Mobile Apps 3
E Fertiges Programm auf Smartphone zum laufen bringen. Android & Cross-Platform Mobile Apps 2
B Programm aus einem Buch funzt nicht! Android & Cross-Platform Mobile Apps 16
C Programm nicht auf Handy installierbar (Zertifikatfehler) Android & Cross-Platform Mobile Apps 3
D J2ME - Wie und welches Programm Android & Cross-Platform Mobile Apps 10
U Programm um die Klassen darzustellen Android & Cross-Platform Mobile Apps 4
S Idee gesucht für ein kleines Programm Android & Cross-Platform Mobile Apps 3
A Java Programm auf Handy? Android & Cross-Platform Mobile Apps 2
luke86 Programm von Handy zu Handy weitergeben(NOKIA N70) Android & Cross-Platform Mobile Apps 3
D Bluetooth Pairing dem Programm ueberlassen? Android & Cross-Platform Mobile Apps 3
J J2ME Java Programm im Hintergrund auf Handy laufen lassen? Android & Cross-Platform Mobile Apps 2
G Programm auf handy installieren Android & Cross-Platform Mobile Apps 3
B Programm für NokiaComunicator erstellen Android & Cross-Platform Mobile Apps 2
D c programm als java application aufs nokia 6230 Android & Cross-Platform Mobile Apps 2
kaoZ formatierung und übergabe von Date elementen als Long Android & Cross-Platform Mobile Apps 5

Ähnliche Java Themen

Neue Themen


Oben