TweakPC

Zurück   Computer Hardware Forum - TweakPC > Games und Software > Programmiersprachen
Registrieren Hilfe Community Downloads

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06.12.2003, 00:08   #1 (permalink)
Nachtduscher
 
Benutzerbild von _Smash_
 

Registriert seit: 22.01.2002
Beiträge: 12.569

_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick

Standard hilfe bei java-übung

hallo

ich habe folgende aufgabenstellung:

Schreiben Sie ein Programm, welches ein Fenster der Klasse Frame öffnet.
In dem Fenster platzieren Sie im FlowLayout die Bedienelemente aus den Klassen Button, TextField und Choice sowie eine Fläche der Klasse Canvas.
In den Canvas zeichnen Sie eine Ellipse, ein Quadrat und einen Text.

und aus folgender vorgabe:

Code:
// Aufgabe 5, AWT
import java.awt.* ;
public class MyFrame extends Frame {
public MyFrame() { super(“MyFrame”) ; }
public static void main() {
MyFrame ef = new MyFrame() ;
ef.setSize(xb, yh) ;
ef.setVisible(true) ;
}
public void paint(Graphics g) {
g.drawString(“in MyFrame”) ;
}
}

dieses programm geschrieben:

Code:
import java.awt.* ;
import java.awt.event.*;

public class MyFrame extends Frame 
{

    public MyFrame() 
    { 
        super("MyFrame") ;
        addWindowListener(new WindowAdapter()
        {
            public void windowClosing(WindowEvent e)
            {System.exit(0);}
        });
    }

    public static void main(String[] args) 
    {

        MyFrame ef = new MyFrame() ;
        FlowLayout flow = new FlowLayout();
        Button b1 = new Button("Ich bin ein Button");
        TextField tf1 = new TextField("Ich bin ein Textfeld",25);
        Choice auswahl = new Choice();
        Canvas c = new Canvas();
        
        ef.setLayout(flow);
        auswahl.addItem("huhu");
        auswahl.addItem("yeehaa");
        auswahl.addItem("lalalala");
        
        
        ef.add(b1);
        ef.add(tf1);
        ef.add(auswahl);
//        c.setBounds(100, 100, 50, 100);
        ef.add(c);
        ef.setSize(300, 300) ;
        ef.setVisible(true) ;
       
           
    }

    public void paint(Graphics g) 
    {
        g.drawString("in MyFrame",10 ,20) ;
        
    }
    
 
}
entschuldigt den etwas konfusen stil, aber das ist versuchsweise zusammengeschrieben

wie ihr seht. erfülle ich alle aufgabenpunkte, außer einer.
ich packs nicht das canvas "bemalbar" zu machen, geschweige denn, daß ich es sehe. leider finde ich in meinen unterlagen nur leicht konfuse sachen, die nicht funktionieren, und mein schönes javabuch erklärt nur swing.

also konkrete frage

wie erfülle ich diesen teil der aufgabe:
In den Canvas zeichnen Sie eine Ellipse, ein Quadrat und einen Text.

also quasi, wie bemale ich so ein ding?

wäre schön, daß ihr eventuellen code gleich erklärt.

vielen dank schonmal

euer euch stets ergebener smash

ps: wieso sehe ich in netbeans bei gui editing eigenltich keine vorschau von dem ding?

pps: ich bräuchte außerdem noch einen, der etwas assembler (motorola mnemonic) kann
Ihr seid ja nur neidisch, weil ich der einzige bin, zu dem die leisen Stimmen sprechen!
TweakPC IRC Channel: #tweakpc im Quakenet (irc.quakenet.org)
Satzzeichen folgen direkt hinter einem Wort. Es ist kein Leerzeichen dazwischen!
_Smash_ ist offline   Mit Zitat antworten
Alt 06.12.2003, 18:52   #2 (permalink)
Overclocker
 

Registriert seit: 29.08.2003
Beiträge: 270

Plautze befindet sich auf einem aufstrebenden Ast

Standard

reicht dir das am montag?!

hab mir gui-entwicklung nicht viel zu tun, hab aber canvas-geschiss in der firma ohne ende.

zu gui-vorschau: saug dir mal den jbuilder

grüße
Plautze ist offline   Mit Zitat antworten
Alt 06.12.2003, 18:57   #3 (permalink)
Nachtduscher
 
Benutzerbild von _Smash_
 

Registriert seit: 22.01.2002
Beiträge: 12.569

_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick

Standard

jo montag geht auch...

das mit der vorschau.... normal sollte das netbeans auch hinbekommen... denn wenn man von da aus ne neues frame öffnet und es nicht selber schreibt, dann geht das auch....
_Smash_ ist offline   Mit Zitat antworten
Alt 09.12.2003, 09:36   #4 (permalink)
Overclocker
 

Registriert seit: 29.08.2003
Beiträge: 270

Plautze befindet sich auf einem aufstrebenden Ast

Standard

also hier die main-klasse:

Code:
package xerces;

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

public class Application1 {
  private boolean packFrame = false;

  //Construct the application
  public Application1() {
    Frame2 frame = new Frame2();
    if (packFrame) {
      frame.pack();
    }
    else {
      frame.validate();
    }
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize = frame.getSize();
    if (frameSize.height > screenSize.height) {
      frameSize.height = screenSize.height;
    }
    if (frameSize.width > screenSize.width) {
      frameSize.width = screenSize.width;
    }
    frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
    frame.setVisible(true);
  }

  public static void main(String[] args) {
    try {
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    }
    catch(Exception e) {
      e.printStackTrace();
    }
    new Application1();
  }
}
hier das frame:

Code:
package xerces;

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

public class Frame2 extends JFrame {
  private JPanel contentPane;
  private TestCanvas test = new TestCanvas(); //unser canvas instanziieren


  //Construct the frame
  public Frame2() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  //Component initialization
  private void jbInit() throws Exception  {
    contentPane = (JPanel) this.getContentPane();
    contentPane.setLayout(null);
    this.setSize(new Dimension(800, 600)); //grösse
    test.setBounds(new Rectangle(10, 10, 600, 280)); //abmessung unseres canvas-bereiches
    test.setVisible(true); //canvas sichtbar setzen
    contentPane.add(test); //canvas zum frame hinzufügen
  }

  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }
}
und hier unser canvas:

Code:
package xerces;

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.Rectangle;

public class TestCanvas extends Canvas {

  public TestCanvas() {
  }

  public void paint(Graphics g) //paint-methode überschrieben
    {
      Graphics2D g2 = (Graphics2D) g;

      g2.setPaint(Color.red); //zeichenfarbe setzen
      g2.drawRect(10,10,50,50); //quadrat zeichen bei x=10, y=10, breite=50, höhe=50
      g2.fillRect(10,10,50,50); //quadrat mit farbe füllen bei x=10, y=10, breite=50, höhe=50
      g2.setPaint(Color.black); //zeichenfarbe ändern
      g2.drawString("hi smash", 10, 150); //string ausgeben
      g2.drawOval(160,10,200,100); //ellipse ausgeben

    }
}
bei weiteren fragen einfach fragen

grüße
Plautze ist offline   Mit Zitat antworten
Alt 09.12.2003, 19:30   #5 (permalink)
Nachtduscher
 
Benutzerbild von _Smash_
 

Registriert seit: 22.01.2002
Beiträge: 12.569

_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick

Standard

hi
habs ja schon in der pm angesprochen...

hab das jetzt draus gemacht

Code:
import java.awt.* ;
import java.awt.event.*;


public class MyFrame extends Frame 
{

    public MyFrame() 
    { 
        super("MyFrame") ;
        addWindowListener(new WindowAdapter()
        {
            public void windowClosing(WindowEvent e)
            {System.exit(0);}
        });
    }

    public static void main(String[] args) 
    {

        MyFrame ef = new MyFrame() ;
        FlowLayout flow = new FlowLayout();
        Button b1 = new Button("Ich bin ein Button");
        TextField tf1 = new TextField("Ich bin ein Textfeld",25);
        Choice auswahl = new Choice();
        Canvas c = new Canvas();
        
        ef.setLayout(flow);
        auswahl.addItem("Benni");
        auswahl.addItem("Felix");
        auswahl.addItem("Patrice");
        
        
        ef.add(b1);
        ef.add(tf1);
        ef.add(auswahl);
        
         
        ef.add(c);
        
        ef.setSize(800, 600) ;
        ef.setVisible(true) ;
        c.setBounds(250, 250 , 500, 500);
        ef.zeichneAufCanvas(c.getGraphics());
         
             
    }

    public void paint(Graphics g) 
    {
        g.drawString("in MyFrame",10 ,20) ;
        
    }
    
    public void zeichneAufCanvas(Graphics g)
    {
              
        g.setColor(Color.black);
        g.drawOval(20,20,200,100);
        g.drawRect(10,10,50,50); 
        g.drawString("String auf Canvas", 10, 150);
        
    }
    
  
}
irgendwie kommt aber das gezeichnete manchmal nicht... und beim verziehen reagierts auch komisch
_Smash_ ist offline   Mit Zitat antworten
Alt 09.12.2003, 19:58   #6 (permalink)
Overclocker
 

Registriert seit: 29.08.2003
Beiträge: 270

Plautze befindet sich auf einem aufstrebenden Ast

Standard

musse n doublebuffer einbauen etc...
Plautze ist offline   Mit Zitat antworten
Alt 09.12.2003, 20:01   #7 (permalink)
Nachtduscher
 
Benutzerbild von _Smash_
 

Registriert seit: 22.01.2002
Beiträge: 12.569

_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick

Standard

kannste das näher erklären?
_Smash_ ist offline   Mit Zitat antworten
Alt 10.12.2003, 01:14   #8 (permalink)
Overclocker
 

Registriert seit: 29.08.2003
Beiträge: 270

Plautze befindet sich auf einem aufstrebenden Ast

Standard

keine ahnung... hab mit gui nicht viel an der backe. such mal unter www.programmierer-board.de im java-forum. da sollten auch einige beispiele sein.

grüße
Plautze ist offline   Mit Zitat antworten
Alt 10.12.2003, 10:41   #9 (permalink)
Nachtduscher
 
Benutzerbild von _Smash_
 

Registriert seit: 22.01.2002
Beiträge: 12.569

_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick

Standard

danke, werde ich mal gucken.
_Smash_ ist offline   Mit Zitat antworten
Alt 18.12.2003, 15:48   #10 (permalink)
Nachtduscher
 
Benutzerbild von _Smash_
 

Registriert seit: 22.01.2002
Beiträge: 12.569

_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick_Smash_ ist ein wunderbarer Anblick

Standard

so ich habe das nach langem hin und her mal überarbeitet und anders aufgebaut, als das, was in der vorgabe gegeben war.

so läuft das jetzt perfekt:

Code:
import java.awt.* ;
import java.awt.event.*;



public class MyFrame2 extends Frame implements MouseListener, ActionListener 
{
    
    int layout = 1;
    
    public MyFrame2() 
    {
            super("MyFrame2");
            
            addWindowListener(new WindowAdapter()
            {
            public void windowClosing(WindowEvent e)
            {System.exit(0);}
            }
            );
            
            
            FlowLayout flow = new FlowLayout();

            
            setLayout(flow);
            setBackground(Color.gray);
            
            TextField textfield = new TextField("Ich bin ein Textfeld",25);
            Choice auswahl = new Choice();
            NewCanvas canvas = new NewCanvas();
            Button button = new Button("Ich bin ein Button");
            
            add(button);
            add(textfield);
            add(auswahl);
            add(canvas);
            
            canvas.setSize(200,200);
            
            auswahl.addItem("hallo");
            auswahl.addItem("huhu");
            auswahl.addItem("muhaha");
            
            setSize(600, 400) ;
            setVisible(true) ;
            
            button.addActionListener(this);
            
            
            
    }
    
    
    public static void main(String[] args) 
    {
            MyFrame2 frame = new MyFrame2();
            
    }
    
    
    public void paint(Graphics g) 
    {
                
    }
    
    public void actionPerformed(ActionEvent AEvent) 
    {
		if (AEvent.getActionCommand().equals("Ich bin ein Button"))
		{
			if(layout==2) {setLayout(new FlowLayout());layout=1;}
                        else {setLayout(new GridLayout(2,2));layout=1;}
                        validate();  
                }
    }
    
       
    
    public void mouseClicked(MouseEvent e) {}
    public void mouseEntered(MouseEvent e) {}
    public void mouseExited(MouseEvent e) {}
    public void mousePressed(MouseEvent e) {}
    public void mouseReleased(MouseEvent e) {}
    
}

class NewCanvas extends Canvas
{
  public void paint(Graphics g) 
    {
        
        g.setColor(Color.black);
        g.drawOval(20,20,100,70);
        g.drawRect(10,10,50,50); 
        g.drawString("String auf Canvas", 10, 50);        
    }  
    
}
_Smash_ ist offline   Mit Zitat antworten
Antwort

Stichworte
hilfe, javauebung, javaübung


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
drucken eines textes in java _Smash_ Programmiersprachen 19 26.02.2006 15:40
hallo java-entwickler?! Plautze Programmiersprachen 14 04.03.2004 12:52
java applet in netbeans _Smash_ Programmiersprachen 21 05.12.2003 17:51
suche editor fuer java und c combat wombat Programmiersprachen 3 29.11.2002 12:55


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 Uhr.






Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.
Impressum, Datenschutz Copyright © 1999-2015 TweakPC, Alle Rechte vorbehalten, all rights reserved