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("这是按钮"); //鼠标在该按钮上停顿一下,就会显示“这是按钮”的提示信息