Voglio solo sapere come creare un punto/pixel ad una certa coordinata x, y sul mio JFrame.Java che fa un 'punto/pixel' In swing/awt
Qualcuno conosce un codice semplice per questo?
Grazie,
Voglio solo sapere come creare un punto/pixel ad una certa coordinata x, y sul mio JFrame.Java che fa un 'punto/pixel' In swing/awt
Qualcuno conosce un codice semplice per questo?
Grazie,
ho creato un piccolo programma di esempio:
012.public class Test extends JFrame {
public Test() {
this.setPreferredSize(new Dimension(400, 400));
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
@Override
public void paint(Graphics g) {
super.paint(g);
// define the position
int locX = 200;
int locY = 200;
// draw a line (there is no drawPoint..)
g.drawLine(locX, locY, locX, locY);
}
public static void main(String[] args) {
Test test = new Test();
}
}
Si potrebbe anche utilizzare il metodo update o paintComponents che sarebbe molto più bello. Ma poi devi assicurarti che venga chiamato. In caso di problemi e che non venga chiamato è possibile utilizzare la seguente soluzione: Why is paint()/paintComponent() never called?
miglior compromesso tra semplicità e l'utilità probabilmente sarebbe di estendere JPanel, e sovrascrivere paintComponent (Graphics). Poi mettete quel pannello nel JFrame (con un layout adeguato Ci sono alcune note di utilizzo qui:.. http://download.oracle.com/javase/1.4.2/docs/api/javax/swing/JComponent.html#paintComponent%28java.awt.Graphics%29
vedere
void update(Graphics g)
metodo della classe JFrame API grafiche (come punto di prelievo, disegnare la linea, disegnare arco, ecc) sono in classe Graphics
EDIT:. http://www.javadb.com/drawing-a-line-using-java-2d-graphics-api
chiedetevi se il vostro davvero vuole estendere la JFrame
o JPanel
. Se decidi di non farlo, puoi creare uno JComponent
di base. Si può avere un successo variabile con questo a seconda del gestore di layout che si utilizza.
public class PixelComponent extends JComponent
{
private Color color;
public PixelComponent(Color color)
{
super();
this.color = color;
}
public PixelComponent()
{
this(Color.BLACK);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(color);
g.fillRect(0, 0, 1, 1);
}
}
Invia il grafico di riferimento e l'asse x ed y per fare un pixel:
private void doPixel(Graphics g, int x, int y){ g.fillRect(x, y, 1, 1); }
poco pulito grazie esempio. Ho dovuto aggiungere le importazioni da eseguire: import javax.swing. *; importare java.awt.Graphics; importare java.awt.Dimension; – strainer
Grazie, per caso sai come impostare il colore della linea/punto/punto? :) –
come fare per il doppio invece di ints? –