为什么在JTextArea中画矩形时,矩形框只是一闪而过?怎么让矩形框一直保持呢?
import java.awt.Graphics;
import java.awt.Color;
import javax.swing.JTextArea;
import javax.swing.JFrame;
public class test extends JFrame {
JTextArea jta = new JTextArea();
public test() {
super.setTitle("test");
this.add(jta);
this.setSize(500,500);
this.setVisible(true);
}
public static void main(String[] args) {
new JTextAreaHex_drawRectangle();
}
}
class JTextAreaHex_drawRectangle extends javax.swing.JTextArea {
test t = new test();
public JTextAreaHex_drawRectangle() {
this.paintComponent(t.getGraphics());
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.drawRect(0, 0, 100, 100);
}
}
----------------解决方案--------------------------------------------------------
我在JButton中画图也是一样的问题。。。期待高手解决哈
----------------解决方案--------------------------------------------------------
我用了一个线程,不知道效果好不好 。
import java.awt.Graphics;
import java.awt.Color;
import javax.swing.JTextArea;
import javax.swing.JFrame;
public class test extends JFrame {
JTextArea jta=new JTextArea();
public test() {
super.setTitle("test");
this.add(jta); // Thread t=new Thread(jta);
//t.start();
this.add(jta);
this.setSize(500,500);
this.setVisible(true);
}
public static void main(String[] args) {
new JTextAreaHex_drawRectangle();
}
}
class JTextAreaHex_drawRectangle extends javax.swing.JTextArea implements Runnable{
test t = new test();
public JTextAreaHex_drawRectangle() {
//this.paintComponent(t.getGraphics());
Thread tt=new Thread(this);
tt.start();
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.drawRect(50, 50, 100, 100);
}
public void run() {
// TODO Auto-generated method stub
while(true)
{
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.paintComponent(t.getGraphics());
repaint();
}
}
}
----------------解决方案--------------------------------------------------------
可是LZ的代码为什么会出现一闪而逝呢
不明白
----------------解决方案--------------------------------------------------------
谢谢3楼的朋友,问下JComponent有没有什么方法能够让矩形框维持而不用线程呢?
----------------解决方案--------------------------------------------------------
这个我不是很清楚,也许有更好的方法!!
----------------解决方案--------------------------------------------------------
[CODE]class MyTextArea extends JTextArea{
protected void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.RED);
g.drawRect(10,10,getWidth()-20,getHeight()-20);
}
}[/CODE]
这样就可以了啊,有必要那么复杂么??
----------------解决方案--------------------------------------------------------
[CODE]class MyTextArea extends JTextArea{
protected void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.RED);
g.drawRect(10,10,getWidth()-20,getHeight()-20);
}
}[/CODE]
这样就可以了啊,有必要那么复杂么??
我只是测试一下,我是想实现跟UE一样的功能,按上下左右都会选种文本,可直接选择又达不到效果,所以就直接画了。这方法很笨,见笑了
----------------解决方案--------------------------------------------------------