java在jpanel中显示字符串
答案:3 悬赏:80 手机版
解决时间 2021-01-25 08:38
- 提问者网友:却不属于对方
- 2021-01-24 23:15
在java application中,我想在一个jpanel上显示字符串,但不是程序刚开始就显示,而是运行到一定时候再显示,应该怎么写呢?目前我只知道drawString方法只能在paint方法里用,而paint方法是程序自动调用的,我想在其他方法里用drawString方法,不知道这样有可行性么?
最佳答案
- 五星知识达人网友:独行浪子会拥风
- 2021-01-24 23:52
TestStr.java文件,handleStr方法是进行逆向的功能,其他都是作了一个界面,为了方便测试。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TestStr extends JFrame implements ActionListener{
JTextField txtInput=new JTextField("请输入字符串");
JTextField txtOutput=new JTextField("转换后的字符串");
JButton ok=new JButton("转换");
public TestStr() {
setLayout(new BorderLayout());
JPanel p=new JPanel();
txtInput.setSize(70,30);
txtOutput.setSize(70,30);
p.add(txtInput);
p.add(txtOutput);
ok.addActionListener(this);
add(p,BorderLayout.CENTER);
add(ok,BorderLayout.SOUTH);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(200,100);
}
public void actionPerformed(ActionEvent e){
txtOutput.setText(handleStr(txtInput.getText()));
}
public String handleStr(String input){
if(input!=null && !input.trim().equals("")){
int len=input.length();
char[] output=new char[len];
for(int i=0,j=len-1;i<len;i++,j--){
output[i]=input.charAt(j);
}
return new String(output);
}
return "";
}
public static void main(String args[]){
TestStr t=new TestStr();
t.setVisible(true);
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TestStr extends JFrame implements ActionListener{
JTextField txtInput=new JTextField("请输入字符串");
JTextField txtOutput=new JTextField("转换后的字符串");
JButton ok=new JButton("转换");
public TestStr() {
setLayout(new BorderLayout());
JPanel p=new JPanel();
txtInput.setSize(70,30);
txtOutput.setSize(70,30);
p.add(txtInput);
p.add(txtOutput);
ok.addActionListener(this);
add(p,BorderLayout.CENTER);
add(ok,BorderLayout.SOUTH);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(200,100);
}
public void actionPerformed(ActionEvent e){
txtOutput.setText(handleStr(txtInput.getText()));
}
public String handleStr(String input){
if(input!=null && !input.trim().equals("")){
int len=input.length();
char[] output=new char[len];
for(int i=0,j=len-1;i<len;i++,j--){
output[i]=input.charAt(j);
}
return new String(output);
}
return "";
}
public static void main(String args[]){
TestStr t=new TestStr();
t.setVisible(true);
}
}
全部回答
- 1楼网友:平生事
- 2021-01-25 01:26
必须加一个线程,此线程用于检测时间,一定时间后,就开始drawString
- 2楼网友:行雁书
- 2021-01-25 00:20
在new paint方法所在类的实例时 会自动调用paint方法。按你的要求你在创建此类实例时加上Thread.sleep(3000)看看;不知道lz是不是这个意思!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯