Zdravím, neviem si rady, ako kresliť do objektu canvas. Pracoval som v JavaScripte, prešiel som na Javu. Mám uvedený program, ktorý používa swing:
Kód:
import java.awt.*;
import java.awt.Graphics.*;
import java.awt.Canvas.*;
import javax.swing.*;
import javax.swing.JDialog.*;
import javax.swing.JFrame.*;
public class test extends JFrame {
public test() {
initComponents();
}
private void initComponents() {
panel = new javax.swing.JPanel();
canvas = new java.awt.Canvas();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
panel.setBackground(new java.awt.Color(255, 0, 0));
panel.setLayout(null);
canvas.setBackground(new java.awt.Color(0, 255, 0));
panel.add(canvas);
canvas.setBounds(30, 20, 150, 140);
getContentPane().add(panel, java.awt.BorderLayout.CENTER);
pack();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new test().setVisible(true);
}
});
}
private java.awt.Canvas canvas;
private javax.swing.JPanel panel;
}
Chcel by som do objektu canvas nakresliť napr. čiaru. Napadlo ma čisto logicky:
Kód:
canvas.drawLine(10, 20, 300, 100);
No to samozrejme nefunguje. V niektorých návodoch sa písalo o používí metódy:
Kód:
public void paint(Graphics g) {
g.drawLine(10,20,300,100);
}
, no z nepochopiteľných príčin mi zblbne design programu - pozadie obsahu sa nevykreslí a celé sa to rozmaže. Neviete prosím, ako na to? Ďakujem.