java的gui實現小說閱讀
Ⅰ JAVA GUI如何實現按一下按鈕讀取一行文本顯示在界面上
LineText //代表(最後)讀取的一行文本
DiDian.setText(LineText);//把最後一把文本"設置"為文本組件的內容
問題就出現在:
在while循環里 ,每一次都會使用最後一行代碼來替換 文本組件的內容; 所以文本組件只會顯示最後一行的內容
解決辦法[推薦的方法]:
StringBuildersb=newStringBuilder();
while((LineText=BR.readLine())!=null){
sb.append(LineText);//把每一行都保存到StringBuilder
sb.append(" ");//如果每一行都需要換行,那麼把每一行後面都加上一個換行符
}
//讀取完了,才設置文本組件的文字
DiDian.setText(sb.toString);
最後建議 :
JTextArea文本組件說明
JTextAreajta=newJTextArea();//文本域組件,可以調用append方法,追加文字
jta.append(LineText+" ");//但是頻繁的追加文本,是不推薦的操作,導致性能降低.
//建議還是使用StringBuilder或者StringBuffer來連接字元串
JTextField / JTextPane文本組件的說明
JTextPanejtp=newJTextPane();
jtp.setText(jtp.getText()+LineText+" ");//可以在調用setText的時候,
//先getText獲取之前文本,在添加上新的文本
Ⅱ java中GUI的實現方式是
其實無論在什麼平台下,GUI應用程序的基本開發方法都是相似的。一般都包括下面這樣四個步驟:
①創建容器
首先要創建一個GUI應用程序,需要創建一個用於容納所有其它GUI組件元素的載體,Java中稱為容器。典型的包括窗口(Window)、框架(Frame/JFrame)、對話框(Dialog/JDialog)、面板(Panel/JPanel)等。只有先創建了這些容器,其它界面元素如按鈕(Button/JButton)、標簽(Label/JLabel)、文本框(TextField/JTextField)等才有地方放。 ②添加組件
為了實現GUI應用程序的功能,為了與用戶交換,需要在容器上添加各種組件/控制項。這需要根據具體的功能要求來決定用什麼組件。例如,如果需要提示信息,可用標簽(Label/JLabel);如果需要輸入少量文本,可用文本框(TextField/JTextField);如果需要輸入較多文本,可用文本區域(TextArea/JTextArea);如果需要輸入密碼,可用密碼域(JPasswordField)等等。
③安排組件
與傳統的Windows環境下的GUI軟體開發工具不同,為了更好地實現跨平台,Java程序中各組件的位置、大小一般不是以絕對量來衡量,而是以相對量來衡量。例如有時候,程序的組件的位置是按"東/East"、"西/West"、"南/South"、"北/North"、"中 /Center"這種方位來標識的。因此,在組織界面時,除了要考慮所需的組件種類外,還需要考慮如何安排這些組件的位置與大小。這一般是通過設置布局管理器(Layout Manager)及其相關屬性來實現的。事實上上述按方位來安排組件就是採用了Java中多種布局管理器里的BorderLayout布局管理器。
④處理事件
為了完成一個GUI應用程序所應具備的功能,除了適當地安排各種組件產生美觀的界面外,還需要處理各種界面元素事件,以便真正實現與用戶的交換,完成程序的功能。在Java程序中這一般是通過實現適當的事件監聽者介面來完成的。比如如果需要響應按鈕事件,就需要實現 ActionListener監聽者介面;如果需要響應窗口事件,就需要實現WindowListener監聽者介面。
Ⅲ 用java編程實現GUI界面,包括文本域、文本框、按鈕等相關功能,實現模擬登陸驗證功能。
importjava.awt.FlowLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JTextArea;
importjavax.swing.JTextField;
publicclassDemoextendsJFrame{
Stringusername;
Stringpassword;
publicDemo(){
username="java";
password="123";
setTitle("#####");
setSize(400,300);
setLocation(400,200);
setLayout(newFlowLayout());
JTextAreajta=newJTextArea(4,30);
jta.setText("請輸入用戶名密碼: 用戶名:"+username+" 密碼:"+password);
jta.setEditable(false);//設置文本區域不可編輯
add(jta);
JLabelusernameLabel=newJLabel("用戶名:");
finalJTextFielsernameText=newJTextField(10);
add(usernameLabel);
add(usernameText);
JLabelpasswordLabel=newJLabel("密碼:");
finalJTextFieldpasswordText=newJTextField(10);
add(passwordLabel);
add(passwordText);
JButtonbutton=newJButton("登錄");
add(button);
finalJLabelresult=newJLabel();//用來顯示登錄結果
add(result);
button.addActionListener(newActionListener(){//登錄按鈕事件
@Override
publicvoidactionPerformed(ActionEvente){
//獲取輸入的用戶名密碼
StringtempUserName=usernameText.getText();
StringtempPassWord=passwordText.getText();
if(tempUserName.equals(username)&&tempPassWord.equals(password)){
result.setText("登錄成功");
}else{
result.setText("登錄失敗");
}
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
publicstaticvoidmain(String[]args){
newDemo();
}
}
Ⅳ Java實現GUI編程基本方法都有那些
其實無論在什麼平台下,GUI應用程序的基本開發方法都是相似的。一般都包括下面這樣四個步驟:
①創建容器
首先要創建一個GUI應用程序,需要創建一個用於容納所有其它GUI組件元素的載體,Java中稱為容器。典型的包括窗口(Window)、框架(Frame/JFrame)、對話框(Dialog/JDialog)、面板(Panel/JPanel)等。只有先創建了這些容器,其它界面元素如按鈕(Button/JButton)、標簽(Label/JLabel)、文本框(TextField/JTextField)等才有地方放。
②添加組件
為了實現GUI應用程序的功能,為了與用戶交換,需要在容器上添加各種組件/控制項。這需要根據具體的功能要求來決定用什麼組件。例如,如果需要提示信息,可用標簽(Label/JLabel);如果需要輸入少量文本,可用文本框(TextField/JTextField);如果需要輸入較多文本,可用文本區域(TextArea/JTextArea);如果需要輸入密碼,可用密碼域(JPasswordField)等等。
③安排組件
與傳統的Windows環境下的GUI軟體開發工具不同,為了更好地實現跨平台,Java程序中各組件的位置、大小一般不是以絕對量來衡量,而是以相對量來衡量。例如有時候,程序的組件的位置是按"東/East"、"西/West"、"南/South"、"北/North"、"中 /Center"這種方位來標識的。因此,在組織界面時,除了要考慮所需的組件種類外,還需要考慮如何安排這些組件的位置與大小。這一般是通過設置布局管理器(Layout Manager)及其相關屬性來實現的。事實上上述按方位來安排組件就是採用了Java中多種布局管理器里的BorderLayout布局管理器。
④處理事件
為了完成一個GUI應用程序所應具備的功能,除了適當地安排各種組件產生美觀的界面外,還需要處理各種界面元素事件,以便真正實現與用戶的交換,完成程序的功能。在Java程序中這一般是通過實現適當的事件監聽者介面來完成的。比如如果需要響應按鈕事件,就需要實現 ActionListener監聽者介面;如果需要響應窗口事件,就需要實現WindowListener監聽者介面。
Ⅳ 用JAVA編寫一個GUI記事本程序,實現文本的輸入,保存,修改,打開操作
代碼如下:
importjava.io.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassjtxtfm{
publicstaticvoidmain(Stringargs[]){
jtxtfrmfm=newjtxtfrm();
}
}
{
FileDialogop,sv;
Buttonbtn1,btn2,btn3;
TextAreatarea;
jtxtfrm(){
super("讀寫文件");
setLayout(null);
setBackground(Color.cyan);
setSize(600,300);
setVisible(true);
btn1=newButton("打開");
btn2=newButton("保存");
btn3=newButton("關閉");
tarea=newTextArea("");
add(btn1);add(btn2);add(btn3);add(tarea);
tarea.setBounds(30,50,460,220);
btn1.setBounds(520,60,50,30);
btn2.setBounds(520,120,50,30);
btn3.setBounds(520,180,50,30);
op=newFileDialog(this,"打開",FileDialog.LOAD);
sv=newFileDialog(this,"保存",FileDialog.SAVE);
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
addWindowListener(
newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
setVisible(false);
System.exit(0);
}
}
);
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==btn1){
Stringstr;
op.setVisible(true);
try{
Filef1=newFile(op.getDirectory(),op.getFile());
FileReaderfr=newFileReader(f1);
BufferedReaderbr=newBufferedReader(fr);
tarea.setText("");
while((str=br.readLine())!=null)tarea.append(str+' ');
fr.close();
}
catch(Exceptione1)
{}
}
if(e.getSource()==btn2){
sv.setVisible(true);
try{
Filef1=newFile(sv.getDirectory(),sv.getFile());
FileWriterfw=newFileWriter(f1);
BufferedWriterbw=newBufferedWriter(fw);
Stringgt=tarea.getText();
bw.write(gt,0,gt.length());
bw.flush();
fw.close();
}
catch(Exceptione2)
{}
}
if(e.getSource()==btn3){
System.exit(0);
}
}
}
效果圖:
Ⅵ 使用java編程,實現一個小說管理器
又看見這種提問,唉。。。
1.明確自己是用什麼模式實現,C/S還是B/S 。
個人建議B/S
因為比較多的範例可以參考,技術上也比較容易上手。
2.BS的實現思路
框架就採用Struts和JDBC吧,完全夠用。
步驟就是:先建表,再前端,再後台。也可以先前端頁面。
1登錄、注冊比較簡單,不涉及許可權控制,用戶表:用戶名、密碼(MD5加密)郵箱、性別等等。略過。
2在線小說閱讀資料庫的建立
小說表:ID、書名、分類、地址(建議把小說內容放在TXT文檔中,讀取的時候放進Jsp就好,因此這里的地址就是小說在伺服器硬碟上的地址)、作者、簡介等
分類表: ID 分類名
等
3實現閱讀小說
點擊某個小說的時候傳一個小說的ID到後台,查表,得到小說的地址,用IO讀出小說,傳回前台,當然建議分頁讀,以免小說過大,影響效率。
4上傳和下載,Struts2可以比較方便的實現,網上例子比較多。
Ⅶ 寫一個java GUI界面,有個文本框可輸入文本,按個按鈕之後輸出到文件中
給你寫個簡單的,參考一下吧
package uni;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Guiwriter extends JFrame
{
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JLabel l = new JLabel("請輸入內容:");
JTextField f = new JTextField();
JButton b = new JButton("執行");
public Guiwriter() //構造方法
{
this.setLayout(new BorderLayout());
p1.setLayout(new GridLayout(3, 2));
p1.add(l);
p1.add(f);
this.add(p1, BorderLayout.NORTH);
p2.add(b, BorderLayout.CENTER);
this.add(p2, BorderLayout.CENTER);
this.setSize(200, 200);
this.setVisible(true);
b.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String str =f.getText();
run(str);
}
});
}
public void run(String str){
String rtnFile1 = "d:/OK.txt";//輸出文件路徑
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(rtnFile1));
String str1 = str ;
bw.write(str1);
bw.newLine();
bw.flush();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main (String args[]){
new Guiwriter();
}
}
Ⅷ java中利用GUI實現圓,矩形,梯形的面積計算功能。要求使用jtextfield實現互動式輸入
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.JTextField;
public class Area extends JFrame {
JTextField HighText, WideText;
JButton Calculate;
JLabel HighLabel, WideLabel;
JLabel MassageLabel;
Area() {
setLayout(new FlowLayout());
WideLabel = new JLabel("矩形長為");
HighLabel = new JLabel("矩形高為");
MassageLabel = new JLabel("請輸入矩形的長和寬!");
HighText = new JTextField(10);
WideText = new JTextField(10);
Calculate = new JButton("計算");
setTitle("求矩形面積");
add(WideLabel);
add(WideText);
add(HighLabel);
add(HighText);
add(Calculate);
add(MassageLabel);
setVisible(true);
setSize(200,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Calculate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int area, perimeter;
int high = Integer.parseInt(HighText.getText());
int wide = Integer.parseInt(WideText.getText());
area = high * wide;
perimeter = (high + wide) * 2;
MassageLabel.setText("矩形面積為:" + area + "矩形周長為:" + perimeter);
}
});
}
public static void main(String[] args) {
new Area();
}
}
Ⅸ java編寫的GUI 怎麼實現查找功能(使用搜索
java編寫的GUI 怎麼實現查找功能:
package communitys.Connect;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class dxdsy extends JFrame implements ActionListener{
private JButton button = new JButton("搜索");
private JTextField textfile = new JPasswordField("請輸入文件名稱······");
public dxdsy()
{
this.setLayout(null);
this.setBounds(200,200, 500,500);
textfile.setBounds(1, 1, 100,20);
button.setBounds(1, 25, 80,80);
this.add(button);
this.add(textfile);
button.addActionListener(this);//添加事件監聽
this.setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public void actionPerformed(ActionEvent e) {
String sql = "select * from tablename where 條件 like '%"+textfile.getText()+"%'";
try {
Class.forName("驅動字元");
Connection conn = DriverManager.getConnection("驅動字元");
Statement sta = conn.createStatement();
ResultSet rs = sta.executeQuery(sql);
//這個rs集合當中就是想要的數據
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
}
}