swing編程
不能對JTable直接進行增刪改,要先獲取JTable的model然後修改model再將修改後的model賦給JTable
String[] data = new String[8];//用於操作表內數據行的data數組,元素個數要與table的列的數量相一致
int numT;//表格已有數據的行數
JTable jTable=new JTable();
DefaultTableModel model = (DefaultTableModel) this.jTable.getModel();
numT = model.getRowCount();//獲取當前已有行數
while (numT > 0) {//如果是全體刷新表格需要移除之前的所有數據行
model.removeRow(0);
numT--;
}
sql= "select name,number,area,price,room,acreage,fishing,mating from message";
try{
rs=stmt.executeQuery(sql);
while (rs.next()) {
data[0] = rs.getString(1).trim();
data[1] = rs.getString(2).trim();
data[2] = rs.getString(3).trim();
data[3] = rs.getString(4).trim();
data[4] = rs.getString(5).trim();
data[5] = rs.getString(6).trim();
data[6] = rs.getString(7).trim();
data[7] = rs.getString(8).trim();
model.addRow(data);
}
}catch(SQLException e){
System.err.print("Error" + e.getMessage());
}
jTable.setModel(model);//將修改後的model傳回給JTable
至於JButton那些觸發在事件偵聽里,根據
jTable.getSelectedRow();獲取已選行號
jTable.getSelectedColumn();獲取已選列號
改行就光獲取行號就可以了,然後讀取模板,刪掉該行再傳回給JTable即可
在JTable創建時可以選擇設置是否允許多選,不多選上面的方法已經夠了
還有什麼網路hi吧,這里不多說了,省的又要審核了
Ⅱ JAVA swing編程 畫圖問題 paint()方法
super.paint()的作用是把當前的區域清空,每次resize的時候就會自動調用paint()方法,paint()方法里先調用了super.paint()清空當前區域,再畫一個矩型筐,當然每次只有一個了。 另外你的演算法也有漏洞,當你想從右上角拉到左下角畫矩形的時候是沒有反應的。 下面這個程序修改了只畫一個的錯誤,改進了右上角拉到左下角的漏洞,還增加了拖動的中間過程。沒時間給你寫注釋,自己看吧。 import java.awt.*; import java.awt.event.*; import java.util.Vector; import javax.swing.*; public class Hello extends JFrame implements MouseListener,MouseMotionListener{ int x一,y一; Vector rectangles=null; public Hello(){ this.setTitle("畫圖小程序"); this.addMouseListener(this); this.addMouseMotionListener(this); this.setSize(四00,四00); rectangles=new Vector(); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void paint(Graphics g){ super.paint(g); g.setColor(Color.BLUE); for(int i=0;i<rectangles.size();i++){ Rectangle rec=rectangles.get(i); int tmp_x=rec.x; int tmp_y=rec.y; int tmp_w=rec.width; int tmp_h=rec.height; g.drawRect(tmp_x,tmp_y,tmp_w,tmp_h); } } public static void main(String[] args) { new Hello(); } public void mouseClicked(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed(MouseEvent e) { x一=e.getX();y一=e.getY(); } public void mouseReleased(MouseEvent e) { int x二=e.getX(); int y二=e.getY(); int x=0; int y=0; Graphics g=this.getGraphics(); g.setColor(Color.BLUE); int tmp_w=0; int tmp_h=0; if(x一x二){ x=x二; tmp_w=x一-x二; } if(y一y二){ y=y二; tmp_h=y一-y二; } rectangles.add(new Rectangle(x,y,tmp_w,tmp_h)); this.repaint(); } public void mouseDragged(MouseEvent e) { int x二=e.getX(); int y二=e.getY(); int x=0; int y=0; Graphics g=this.getGraphics(); g.setColor(Color.BLUE); int tmp_w=0; int tmp_h=0; if(x一x二){ x=x二; tmp_w=x一-x二; } if(y一y二){ y=y二; tmp_h=y一-y二; } paint(g); g.drawRect(x,y,tmp_w,tmp_h); } public void mouseMoved(MouseEvent e) { }
Ⅲ 在swing編程中,運用JInternalFrame,那如何在關掉內部窗體的同時把外部窗體關掉
關閉內部窗體時會觸發 InternalFrameEvent 事件. 我們添加Listener對其進行響應即可
internalFrame.addInternalFrameListener(newInternalFrameAdapter(){
@Override
(InternalFrameEvente){//當內部窗體關閉時,會執行下面的代碼
//1.最簡單的方式就是:徹底關閉退出,但如果還有其他窗口,那麼也會關閉其它窗口
//System.exit(0);
//2.僅關閉當前內部窗口,和所在的外部窗體
Windowwin=SwingUtilities.getWindowAncestor(desktopPane);//獲取指定組件的外部窗體
win.setVisible(false);//設置不可見
win.dispose();//銷毀
}
});
完整的參考代碼
importjavax.swing.*;
importjavax.swing.event.*;
importjava.awt.*;
{
publicParentFrame(){
JDesktopPanedesktopPane=newJDesktopPane();
JInternalFrameinternalFrame=newJInternalFrame("內部窗體");
internalFrame.setClosable(true);//注意一定要在構造internalFrame指定可以關閉,或者直接設置internalFrame可以關閉
internalFrame.setSize(180,120);
internalFrame.setLocation(50,60);
internalFrame.setVisible(true);
desktopPane.add(internalFrame);
add(desktopPane);
setTitle("外部窗體");
setSize(450,380);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE); //關鍵代碼
internalFrame.addInternalFrameListener(newInternalFrameAdapter(){
@Override
(InternalFrameEvente){
//1.最簡單的方式就是:徹底關閉退出,但如果還有其他窗口,那麼也會關閉其它窗口
//System.exit(0);
//2.僅關閉當前內部窗口,和所在的外部窗體
Windowwin=SwingUtilities.getWindowAncestor(desktopPane);//獲取指定窗口的外部窗體
win.setVisible(false);//設置不可見
win.dispose();//銷毀
}
});
}
publicstaticvoidmain(String[]args){
EventQueue.invokeLater(newRunnable(){
@Override
publicvoidrun(){
newParentFrame().setVisible(true);//創建窗口並設置可見
}
});
}
}
Ⅳ java swing 編程中,如何實現點擊按鈕彈出新的窗口
import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
public class Demo {
public static void main(String[] args) {
Demo demo = new Demo();
demo.run();
}
public void run() {
JFrame frame = new JFrame("title1");
frame.setLayout(null);
frame.setBounds(10, 10, 500, 300);
Button button = new Button("click");
button.setBounds(15, 15, 200, 100);
frame.add(button);
frame.setVisible(true);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JFrame frame = new JFrame("title2");
frame.setLayout(null);
frame.setBounds(20, 20, 300, 100);
frame.setVisible(true);
}
});
}
}
哪裡不懂可以追問,很簡陋的程序哈。
Ⅳ 利用SWING編程
我沒有時間幫你寫出程序,但根據說明是非常簡單的,因為裡面連類名,擴展哪個類都有指定,你跟著說明自己慢慢試試,應該很快就能寫出代碼
Ⅵ JAVA swing編程中怎樣讓數據表裡的數據居中
用這個方法setHorizontalAlignment(JTextField.CENTER) 設置文本的水平對齊方式
遇到問題,首先去JDK API文檔裡面找去,先找javax.swing,然後找JTextField,再在方法裡面找有沒有功能跟居中相似的方法,然後再去這個方法看看,最後確定是不是用這個方法能實現預期的效果。。。
Ⅶ 在swing編程中,我用循環的形式創建按鈕,怎麼讓別的類獲得我所創建的按鈕呢
你這樣做的話,就需要有個來管理按鈕的容器。
可以是MAP,可以是LIST
我覺得MAP會好一些。
用KEY表示,你這個按鈕的特別之處,或乾脆叫btn01 - btn40
所有的都設置成非顯示。
如果btn03要顯示出來。
MAP。GET(btn03)
這樣來得到你的按鈕。是顯示出來,還是添加到容器上,就看你想怎麼做了。
Ⅷ 在Swing編程中,Java的setToolTipText()方法
Swing是一個用於開發Java應用程序用戶界面的開發工具包。
setToolTipText()用於在控制項上顯示提示信息
如:
button.setToolTipText("這是按鈕"); //滑鼠在該按鈕上停頓一下,就會顯示「這是按鈕」的提示信息