導航:首頁 > 編程語言 > javajframe更新界面

javajframe更新界面

發布時間:2024-11-27 21:21:58

A. 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

B. JAVA SWING中如何通過點擊按鈕來動態的更新界面里的內容 例如軟體里的「下一步」功能 能出現不同的界面

使用卡片布局,這種布局允許你定義多個面板,並且給每個面板起名字,你只要通過點擊事件來顯示其中某一個面板就可以達到你要的效果
比如:
CardLayout crd=new CardLayout();
具體例子網上很多,而且一看就懂

C. 我在java swing,jframe窗口 中添加了菜單欄,但是運行時卻什麼都沒有,求大神

你的Java程序我幫你改好了,你看看吧.

主要問題是你在菜單初始化之前,顯示frame頁面,導致菜單沒有顯示.把顯示frame頁面放到菜單初始化之後就行了.

importjava.awt.BorderLayout;
importjavax.swing.JFrame;
importjavax.swing.JMenu;
importjavax.swing.JMenuBar;
importjavax.swing.JMenuItem;
publicclassMainGui{
JFrameframe;
JMenuBarmenuBar1;
JMenumenu1,menu2,menu3,menu4,menu5,menu6,menu7,menu8;
JMenuItemmi_book_add,mi_book_update,mi_book_delete,mi_reader_add,mi_reader_update,mi_reader_delete;
JMenuItemmi_borrow,mi_return,mi_query_book,mi_query_reader,mi_update_reader,mi_exit;
publicMainGui(){
frame=newJFrame("LibraryMenageSystem");
menuBar1=newJMenuBar();

menu5=newJMenu("BasicMaintain");

menu6=newJMenu("BookMaintain");
mi_book_add=newJMenuItem("Add..");
mi_book_update=newJMenuItem("Modify..");
mi_book_delete=newJMenuItem("Delete..");
menu6.addSeparator();
menu6.add(mi_book_add);menu6.add(mi_book_update);menu6.add(mi_book_delete);

menu7=newJMenu("ReaderMaintain");
mi_reader_add=newJMenuItem("AddNewUser..");
mi_reader_update=newJMenuItem("ModifyUserinfo..");
mi_reader_delete=newJMenuItem("DeleteUser..");
menu7.add(mi_reader_add);menu7.add(mi_reader_update);menu7.add(mi_reader_delete);

menu1=newJMenu("BorrowInformationManage");
mi_borrow=newJMenuItem("Borrow");
mi_return=newJMenuItem("Return");
menu1.add(mi_borrow);menu1.add(mi_return);

menu2=newJMenu("QuerySystem");
mi_query_book=newJMenuItem("BookQuery");
mi_query_reader=newJMenuItem("UserQuery");
menu2.add(mi_query_book);menu2.add(mi_query_reader);

menu3=newJMenu("SystemManage");
mi_exit=newJMenuItem("Quit");
menu3.add(mi_exit);

menuBar1.add(menu5);
menuBar1.add(menu6);
menuBar1.add(menu7);
menuBar1.add(menu1);
menuBar1.add(menu2);
menuBar1.add(menu3);
frame.setJMenuBar(menuBar1);
frame.setLayout(newBorderLayout());
frame.setSize(640,480);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
publicstaticvoidmain(String[]args){
newMainGui();
}
}

運行結果

D. java實現簡單登錄界面,就是按個按鈕就能從一個JFRAME跳轉到另一個,基本就是按登錄就能跳轉

java實現的簡單登錄頁面,從一個按鈕點擊後跳轉的頁面的jframe寫法:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class jb{
public static void main(String args[]){
JFrame f=new JFrame("點我跳轉");
Container contentPane=f.getContentPane();
contentPane.setLayout(new GridLayout(1,2));
Icon icon=new ImageIcon("b.jpg");
JLabel label2=new JLabel("a",icon,JLabel.CENTER);
label2.setHorizontalTextPosition(JLabel.CENTER);
contentPane.setLayout(new FlowLayout( FlowLayout.CENTER,10,10));
JButton bb=new JButton("圖片");
bb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JFrame bf=new JFrame("新窗體");
Icon icon=new ImageIcon("enter.jpg");
JLabel label2=new JLabel(icon);
bf.getContentPane().add(label2);
bf.setSize(300,360);
bf.show();
}});
contentPane.add(label2);
contentPane.add(bb);
f.pack();
f.show();
}}

E. Java Swing關於界面刷新的問題!!

這個,你把jpanel對象聲明為成全局變數,在主窗體裡面去創建,然後通過按鈕來改變jpanel對象即可:具體的代碼我就不寫了,給點關鍵的給你,僅作參考!
我沒有編譯環境,單詞有可能有些錯,能表達意思就好,
代碼如下:

class Demo extend Jframe{
private Jpanel panel=null;//這個是你要更改的面板
private Jbutton btnA=null;
private Jbutton btnB=null;

public Demo()
{
this.setSize(800,600)

panel=new Jpane();
panel.setSize(100,100);

btnA=new Jbutton("寬度加300")
btnA.addActionListener(new actionListener(){
實現介面方法,在實現方法中填入panel.setSize(400,100);
})

btnB=new Jbutton("高度加300")
btnB.addActionListener(new actionListener(){
實現介面方法,在實現方法中填入panel.setSize(100,400);
})
this.add(panel);
this.add(btnA);
this.add(btnB);

}

main(String[] args){
new Demo();

}

}
當程序運行的時候,你分別點擊按鈕你就可以隨時改變panel中的類容了,包括在panel中控制項,文本等!!,其他的什麼布局,坐標什麼的,樓主應該很熟悉的,我只給個例子!!我就不啰嗦了!

F. java GUI,點擊按鈕彈出下一個frame界面的代碼

jPanel1.setLayout(borderLayout2);把這句去掉並且在開始構造jPanel1的時候給內它容加個layoutJPanel
jPanel1
=
new
JPanel(new
BorderLayout());

G. java中怎樣實現刷新Jframe,具體內容如下:

可以改變圖片的背景圖片啊!
給按鈕一個單擊事件(ActionPerformed),在事件裡面用 按鈕名稱.setIcon(new ImageIcon("圖片路徑"));

H. JAVA編寫程序實現這個界面

importjava.awt.Color;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.jsplitPane;

/**
*
*@authorgyona
*/
{

JPaneljp1,jp2,jp3;
JSplitPanejsp1,jsp2;
JLabelj1,j2,j3;

publicstaticvoidmain(String[]args){
JFrameDemojf=newJFrameDemo();
jf.init();
}

privatevoidinit(){
jp1=newJPanel();
j1=newJLabel("label1");//文字標簽
jp1.add(j1);
jp1.setBackground(Color.BLUE);//背景色
jp2=newJPanel();
j2=newJLabel("label2");
jp2.add(j2);
jsp1=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,jp1,jp2);//橫向拆分
jsp1.setOneTouchExpandable(false);//隱藏拆分線上的小三角形
jp3=newJPanel();
jp3.setBackground(Color.RED);
j3=newJLabel("label3");
jp3.add(j3);
jsp2=newJSplitPane(JSplitPane.VERTICAL_SPLIT,jsp1,jp3);//縱向拆分
jsp2.setOneTouchExpandable(false);
this.add(jsp2);
this.setTitle("JFramewithJSplitPane");
this.setBounds(300,200,350,260);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
jsp1.setDividerLocation(0.5);//調整第一個拆分窗口的比例0.5:0.5
jsp2.setDividerLocation(0.5);//調整第二個拆分窗口的比例0.5:0.5
}
}

閱讀全文

與javajframe更新界面相關的資料

熱點內容
表格數據如何整列求和 瀏覽:573
寬頻升級外線 瀏覽:573
一根數據線多少錢oppo 瀏覽:622
費用較高的網路類型是 瀏覽:570
怎麼查看一個網站的後台 瀏覽:967
核桃編程有什麼用處 瀏覽:796
如何用文本把數據導入列印系統 瀏覽:629
電信5s3g能升級4g嗎 瀏覽:153
linux內核缺頁異常 瀏覽:258
word2010取消畫布 瀏覽:943
javajframe更新界面 瀏覽:63
機械硬碟u盤放不進4g文件 瀏覽:81
linux下如何復制黏貼 瀏覽:479
蘋果安裝ipa文件 瀏覽:757
5sqq分享視頻文件 瀏覽:67
華為各版本系統 瀏覽:145
編程中的封裝性是什麼意思 瀏覽:43
程序設計畢業答辯ppt 瀏覽:742
美版5s有鎖版本好 瀏覽:200
解壓文件電腦很卡 瀏覽:551

友情鏈接