Re: Java swing JPanel painting
dom.k.black@googlemail.com wrote:
On 10 Apr, 22:01, "dom.k.bl...@googlemail.com"
<dom.k.bl...@googlemail.com> wrote:
On 9 Apr, 16:47, Daniel Pitts
<newsgroup.spamfil...@virtualinfinity.net> wrote:
Mark Space wrote:
Jan Thom? wrote:
On 2009-04-08 15:37:40 +0200, "dom.k.bl...@googlemail.com"
<dom.k.bl...@googlemail.com> said:
It works fine, until I resize the window (causing the JPanel to
resize). Then it messes up, some parts of the plot are correct, some
are displaced upwards in the Y direction. It definitely does a redraw.
Is there anything I need to do when I resize? Should I call repaint()
after a resize?
Probably a good idea.
revalidate(), I think, on the highest level component you resize, I
think. Check the docs though, this is off-the-cuff.
You shouldn't have to callrevalidateor repaint when a window gets resized.
There is some other issue going on.
Please post an SSCCE, and don't please don't multi-post.
--
Daniel Pitts' Tech Blog: <http://virtualinfinity.net/wordpress/>- Hide quoted text -
- Show quoted text -
Sorry for the multi-post.
I think the problem is I am trying to display 90 degree rotated text.
Within the paint I am doing:
AffineTransform def = ((Graphics2D)gc).getTransform();
AffineTransform at = new AffineTransform();
at.setToRotation(-Math.PI/2.0);
((Graphics2D)gc).setTransform(at);
Then drawing the rotated text, then doing:
((Graphics2D)gc).setTransform(def);- Hide quoted text -
- Show quoted text -
Sorry, posted before complete! Damn Google.
When I print using the method in my previous post, ie Graphics2D, it
messes up the first time but works on repaint.
Do I have to do something to initialise Graphics2D?
Your biggest problem was not posting a complete code example or
explaining yourself adequately. There is nothing complicated about
writing code to draw text at a different angle. Please do a search on
SSCCE. And now that we know what you really want, here is a simple
example to do it.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class test extends JPanel {
public test() {
setPreferredSize(new Dimension(320,240));
}
public void paintComponent(Graphics g2d) {
Graphics2D g = (Graphics2D)g2d;
g.setColor(Color.WHITE);
g.fillRect(0,0,getWidth(),getHeight());
g.setColor(Color.BLUE);
g.rotate(Math.PI/2,getWidth()/2,getHeight()/2);
g.drawString("Hello World!",getWidth()/2-35,getHeight()/2);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
test t = new test();
f.add(t,BorderLayout.CENTER);
f.pack();
f.setVisible(true);
}
});
}
}
--
Knute Johnson
email s/nospam/knute2009/
--
Posted via NewsDemon.com - Premium Uncensored Newsgroup Service
------->>>>>>http://www.NewsDemon.com<<<<<<------
Unlimited Access, Anonymous Accounts, Uncensored Broadband Access