canvas

sk72

Mitglied
Hi,

Wieso wird mein Canvas hier nicht angezeigt ?

Java:
import java.awt.*;
import javax.swing.*;

public class GUI extends JFrame
{
	private JPanel panel;
	private Canvas canvas; 
	
	public static void main(String[] args)
	{
		GUI gui = new GUI();
		gui.createGUI();
	}

	public GUI()
	{
		setSize(800, 500);
		setTitle("Plotter");
		setResizable(false);
		setVisible(true);
	}
	
	public void createGUI()
	{
		panel = new JPanel();
		
		canvas = new Canvas();
		canvas.setBackground(Color.yellow);
		canvas.setSize(200, 200);
		canvas.setVisible(true);
		
		panel.add(canvas);
		
	}
}
 

L-ectron-X

Gesperrter Benutzer
Weil du nirgends das Panel hinzufügst. ;)

Habe deinen Code gleich mal etwas auf Vordermann gebracht.
Java:
import java.awt.*;
import javax.swing.*;

public class GUI extends JFrame
{
    private JPanel panel;
    private Canvas canvas;

    public static void main(String[] args)
    {
        GUI gui = new GUI();
        gui.setVisible(true);
    }

    public GUI()
    {
        super("Plotter");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(800, 500);
        setLocationByPlatform(true);
        setResizable(false);
        createGUI();
    }

    public void createGUI()
    {
        panel = new JPanel();
        canvas = new Canvas();
        canvas.setBackground(Color.YELLOW);
        canvas.setSize(200, 200);
        panel.add(canvas);
        add(panel);
    }
}

BTW: Swing- und AWT-Komponenten besser nicht mischen.
 

sk72

Mitglied
Okay, vielen Dank soweit.

Was genau willst du mir hiermit sagen und wie kann ich dem entgegnen?

Java:
Swing- und AWT-Komponenten besser nicht mischen.

Und noch eine Frage hinterher: Wie kann ich mein Canvas
Code:
ins linke oberer Eck
platzieren?

Und zu guter letzt: Wie kann ich jetzt in meinen Canvas zeichnen?
 

L-ectron-X

Gesperrter Benutzer
Statt Canvas nimmst du ein JPanel.

Zur 2. Frage: Das kommt darauf an, was du noch in deinem Fenster unterbringen willst.
Erst, wenn man weiß, wie sich die Inhalte zueinander anordnen sollen, kann man den/die passenden LayoutManager auswählen.

Zur 3. Frage: Gezeichnet wird mit dem [JAPI]Graphics[/JAPI]-Objekt der [ts=nur in AWT]paint()[/ts]- bzw. der [ts=für zeichen in Swing]paintComponent()[/ts]-Methode, in dem dessen Methoden aufgeruden werden.
 

sk72

Mitglied
Das Ganze soll ein Koordinatensystem geben, indem diverse Funktionen gezeichnet werden sollen ..

Also, nicht das gesamte Frame soll mit einem Koordinatensystem versehen werden, sondern nur ein Teil des Gesamten.
 

sk72

Mitglied
ganz grob:

7yxlqdig.jpg
 

L-ectron-X

Gesperrter Benutzer
Ein Quick-And-Dirty-Ansatz:
Java:
import java.awt.*;
import javax.swing.*;

public class GUI extends JFrame
{
    private JPanel drawPanel;
    private JButton btn1;

    public static void main(String[] args)
    {
        GUI gui = new GUI();
        gui.setVisible(true);
    }

    public GUI()
    {
        super("Plotter");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setResizable(false);
        add(createGUI());
        pack();
        setLocationByPlatform(true);
    }

    public JPanel createGUI()
    {
        JPanel mainPanel = new JPanel(new GridBagLayout());
        JPanel buttonPanel = new JPanel(new GridBagLayout());
        buttonPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
        GridBagConstraints gbc = new GridBagConstraints();

        
        drawPanel = new JPanel() {
           protected void paintComponent(Graphics g) {
              super.paintComponent(g);
              g.drawLine(getSize().width/2, 0, getSize().width/2, getSize().height);
              g.drawLine(0, getSize().height/2, getSize().width, getSize().height/2);
           }
        };
        drawPanel.setPreferredSize(new Dimension(400, 400));
        drawPanel.setMaximumSize(drawPanel.getPreferredSize());
        drawPanel.setMinimumSize(drawPanel.getPreferredSize());
        drawPanel.setBackground(Color.YELLOW);
        
        gbc.anchor = GridBagConstraints.NORTHWEST;
        gbc.weightx = 1.0;
        gbc.weighty = 1.0;
        mainPanel.add(drawPanel, gbc);


        JButton btn1 = new JButton("x² + x");
        
        gbc.anchor = GridBagConstraints.NORTH;
        gbc.fill = GridBagConstraints.HORIZONTAL;
        gbc.weightx = 1.0;
        gbc.weighty = 1.0;
        buttonPanel.add(btn1, gbc);
        
        
        gbc.gridx = 1;
        mainPanel.add(buttonPanel, gbc);
        
        return mainPanel;
    }
}
 

sk72

Mitglied
@ L-ectron-X

Okay, vielen Dank! Ich versuche mal den Code soweit wie möglich nachzuvollziehen. Ich arbeite nicht gerne mit c&p.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
B Canvas erstellen Java Basics - Anfänger-Themen 4
D Erste Schritte Canvas verschwinden nicht mehr Java Basics - Anfänger-Themen 2
J Rechteck zeichnen mit Canvas Java Basics - Anfänger-Themen 7
S canvas zeichnet nichts Java Basics - Anfänger-Themen 7
B Wert aus TextFeld in Canvas benutzen Java Basics - Anfänger-Themen 0
E Java Canvas Zeichnung Java Basics - Anfänger-Themen 2
J BlueJ canvas Buttons adden? Java Basics - Anfänger-Themen 2
D Canvas löschen über MouseEntered in Textfeld Java Basics - Anfänger-Themen 6
T canvas killt KeyListener Java Basics - Anfänger-Themen 2
T canvas.setBackground(); Java Basics - Anfänger-Themen 2
U Zeichnen mit Canvas. Java Basics - Anfänger-Themen 5
A Canvas "löscht sich" Java Basics - Anfänger-Themen 14
T Canvas aktualisierung mit repaint Java Basics - Anfänger-Themen 5
G Bild in Panel oder canvas einfügen Java Basics - Anfänger-Themen 3
S Bild wird auf Canvas nicht angezeigt Java Basics - Anfänger-Themen 8
J Text auf Canvas zentrieren. Java Basics - Anfänger-Themen 4
F zeichnen auf Canvas will nicht klappen Java Basics - Anfänger-Themen 11
S NetBeans 6.0.1 / Zeichnen auf Canvas Java Basics - Anfänger-Themen 8
M Simple Animation funktioniert nicht (JFrame, Canvas, Thread) Java Basics - Anfänger-Themen 6
G Probleme mit JToolBar + Canvas Java Basics - Anfänger-Themen 6
Y Problem mit Canvas Java Basics - Anfänger-Themen 3
B 2 Canvas in einem JFrame Java Basics - Anfänger-Themen 2
philipp Problem mit Canvas Java Basics - Anfänger-Themen 5
S Canvas verkleinern -> Altes Stück Canvas wird weitergezei Java Basics - Anfänger-Themen 4
M Tooltips werden von Canvas "verschluckt" Java Basics - Anfänger-Themen 13
A wie füge ich eine Canvas in JFrame ein? Java Basics - Anfänger-Themen 11
C ein Canvas ist zu groß. mit Scrollbar ? Java Basics - Anfänger-Themen 8
L Canvas fokusieren Java Basics - Anfänger-Themen 4
C Problem mit Zeichnen auf einer extends Canvas Class... Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben