導航:首頁 > 編程語言 > javajlabelsettext

javajlabelsettext

發布時間:2025-08-21 22:08:42

① JLABEL動態更新的問題

經過我N長時間的研究,終於找到答案了,不容易啊。


以下為引用:

為什麼會發生這樣奇怪的現象呢?


java Swing中,界面刷新是線程同步的,也就是說同一時間,只有一個線程能執行刷新界面的代碼。如果要多次不斷地刷新界面,必須在多線程中調用刷新的方法。


本例中,在buttonActionPerformed方法中多次調用了setText方法來試圖刷新JLabel和JTextField的文本。buttonActionPerformed方法運行在主線程中,所以每次調用setText都是運行在主線程中,而且是順序的執行的。在前面幾次調用setText後,線程並沒有退出,所以界面刷新線程不能獲得執行刷新的機會。而當最後一次setText後,線程退出,界面才能執行刷新。所以我們只能看到最後一次setText的值。


因此,要解決這個問題,我們必須把buttonActionPerformed方法中的代碼段放到一個單獨的線程中執行。這樣它就不會使線程阻塞,當每次setText後,界面刷新線程也能得到執行的機會,從而刷新界面。


所以,你的代碼修改如下(只修改了actionPerformed):

@Override
publicvoidactionPerformed(ActionEventarg0)
{
newThread(newRunnable(){

@Override
publicvoidrun(){
//TODOAuto-generatedmethodstub
for(inti=0;i<3;i++)
{
l.setText("num:"+i);
try{
TimeUnit.SECONDS.sleep(2);
}catch(InterruptedExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}

}).start();
}


參考:http://www.cnblogs.com/xiaoran1129/articles/2576111.html

② java的label中如何實現換行輸出

swing中的大部分組件可以使用html的語法,JLabel的文本換行輸入可以使用下面的回語句:

MyJLable.setText("<html><p>第一行</p></p>第二行</p></html>");

參考答資料是Sun的教程,可以看看

③ java實現:整數進制相互轉換

java實現:整數進制相互轉換的方法:

  1. 十進制轉為二進制、八進制、十六進制, 用 Integer.toXXXString()方法

    (1)十進制轉為二進制: Integer.toBinaryString(int i);

    public static String toBinaryString(inti):以二進制(基數 2)無符號整數形式返回一個整數參數的字元串表示形式。

    (2)十進制轉為8進制 :Integer.toOctalString(int i);
    public static String toOctalString(inti):以八進制(基數 8)無符號整數形式返回一個整數參數的字元串表示形式。

    (3)十進制轉為16進制: Integer.toHexString(int i);

    public static String toHexString(inti):以十六進制(基數 16)無符號整數形式返回一個整數參數的字元串表示形式。

舉例:

Stringbin=Integer.toBinaryString(10);
Stringoct=Integer.toOctalString(10);
Stringhex=Integer.toHexString(10);

2.十六進制、八進制、二進制轉為十進制(有兩種方法):parseInt() 和valueOf()。

Integer.parseInt(String s,int radix);

public static int parseInt(String s,int radix) throws NumberFormatException{}使用第二個參數作為指定的基數,將字元串參數解析為有符號的整數;

Integer.valueOf(String s,int radix);

public static Integer valueOf(Strings, intradix) throws NumberFormatException{}返回一個 Integer 對象,該對象中保存了用第二個參數提供的基數進行解析時從指定的 String 中提取的值。

舉例:

try{
inti=Integer.parseInt("a",16);
//輸出為10進制數10
System.out.println(i);
}catch(Exceptione){
e.printStackTrace();
}
try{
//十六進制轉成十進制
Stringhex=Integer.valueOf("FFFF",16).toString();
System.out.println(hex);
//八進制轉成十進制
Stringoct=Integer.valueOf("12",8).toString();
System.out.println(oct);
//二進制轉十進制
Stringbin=Integer.valueOf("0101",2).toString();
System.out.println(bin);
}catch(Exceptione){
e.printStackTrace();
}

④ java程序限制文本框只能輸入浮點數的方法以及非浮點數清空文本框

效果圖

importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;

{
=1L;
JTextFieldjtf;

publicInputFrame(){
JLabeljl=newJLabel("請輸入浮點數");
jtf=newJTextField(10);
jtf.addActionListener(this);
add(jl);
add(jtf);
setLayout(newFlowLayout());
setTitle("窗口");
setSize(200,130);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}

publicvoidactionPerformed(ActionEvente){
//方法一:用證正則表達式進行匹配,如果不符合浮點數就清空對話框
// StringREG="^(-?\d+)(\.\d+)?$";
// if(jtf.getText().matches(REG)){
// doubled=Double.parseDouble(jtf.getText());
// jtf.setText(d+"");
// }else{
// jtf.setText("");//清空文本框
// }

//方法二:用異常處理來解決
try{
doubled=Double.parseDouble(jtf.getText());
jtf.setText(d+"");
}catch(Exceptionex){
jtf.setText("");//清空文本框
}
}

publicstaticvoidmain(String[]args){
newInputFrame();
}
}

⑤ java swing中 讓一個JLabel組建隱藏但是 保留他的位置怎麼做啊 我setVisible(false)

這個真沒有辦法,不過你可以使用JLabel.setText("");內容設置為空,簡枝鎮或者你添加一個new JLabel,通搭緩供add(comp,index)方法來代替想攔粗要隱藏的JLabel的位置

⑥ 在Java中怎麼在文本域輸入特定文字,實現單擊一哈按鈕,在另一個文本框內顯示特定的內容

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.Document;

public class frame extends JFrame
{
JLabel lable1;
JTextArea text2;
JTextField text1;
JButton button;
/**
*
*/
private static final long serialVersionUID = 1L;

public void shapeSearch ( boolean b )
{
this.setTitle ("圖形屬性查詢器");
this.setSize (400, 250);
this.setResizable (b);
this.setVisible (true);
this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
}

public void imputDemo ()
{
JLabel lable1 = new JLabel ("圖形名稱:");
text2 = new JTextArea ();
text2.setText (null);
text2.setLineWrap (true);
text2.setBounds (20, 20, 300, 200);
text1 = new JTextField (10);
JButton button = new JButton ("查詢");
JScrollPane scroll = new JScrollPane (text2);
FlowLayout seeText = new FlowLayout (FlowLayout.CENTER);
seeText.setHgap (20);
seeText.setVgap (60);
this.setLayout (seeText);
this.add (lable1);
this.add (text1);
this.add (button);
this.add (scroll);
ButtonHandle handle = new ButtonHandle ();
button.addActionListener (handle);
DocumentWriter dm = new DocumentWriter ();
Document doc = text1.getDocument ();
doc.addDocumentListener (dm);
this.setVisible (true);
}

class ButtonHandle implements ActionListener
{
public void actionPerformed ( ActionEvent event )
{
if (event.getActionCommand ().equals ("查詢"))
{
if ("圓形".equals (text1.getText ()))
{
text2.setText ("該圓形的半徑是3\n" + "周長是18.84\n" + "面積是28.26");
}
else if ("矩形".equals (text1.getText ()))
{
text2.setText ("該矩形的長是5,寬是4\n" + "周長是18\n" + "面積是20");
text2.setVisible (true);
}
else if ("三角形".equals (text1.getText ()))
{
text2.setText ("該三角形的底邊是3,高是4,斜邊是5\n" + "周長是12\n" + "面積是6");
text2.setVisible (true);
}
}
}
}

class DocumentWriter implements DocumentListener
{
public void changedUpdate ( DocumentEvent e )
{}

public void insertUpdate ( DocumentEvent e )
{}

public void removeUpdate ( DocumentEvent e )
{}
}

public static void main ( String[] args ) throws Exception
{
frame littleFrame = new frame ();
littleFrame.shapeSearch (false);
littleFrame.imputDemo ();
}
}

閱讀全文

與javajlabelsettext相關的資料

熱點內容
象往app家長版如何添加成員 瀏覽:9
一汽奧迪app在哪裡看車輛狀態 瀏覽:359
esb文件格式 瀏覽:667
程序員的圖片 瀏覽:685
報考網路工程師都需要購買哪些書籍 瀏覽:553
文件幣的價格多少 瀏覽:453
安卓pptv本地文件已不在怎麼清理 瀏覽:325
jsp報表插件 瀏覽:575
javajlabelsettext 瀏覽:874
什麼是有效xml文件 瀏覽:216
施工人員在哪個app找工作 瀏覽:409
sources文件夾是什麼 瀏覽:843
缺電腦文件 瀏覽:539
windows編程如何讀取文件大小 瀏覽:947
2017程序員工資統計 瀏覽:153
ps2021暫存檔文件手動清理 瀏覽:459
fdt表中的長文件名 瀏覽:508
mysql管理員默認密碼 瀏覽:359
越獄ios8直接刪系統文件 瀏覽:490
文件櫃的傾斜度是多少 瀏覽:115

友情鏈接