14、BaseDialog的界面

布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="top"
android:gravity="top"
android:paddingLeft="10dip"
android:paddingRight="10dip" >

<LinearLayout
android:id="@+id/dialog_generic_layout_root"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="60dip"
android:background="@drawable/bg_popwindow"
android:clickable="true"
android:focusable="true"
android:orientation="vertical" >

<LinearLayout
android:id="@+id/dialog_generic_layout_top"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:orientation="vertical" >

<LinearLayout
android:id="@+id/dialog_generic_layout_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="10dip"
android:paddingRight="10dip" >

<TextView
android:id="@+id/dialog_generic_htv_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left"
android:paddingBottom="8dip"
android:paddingLeft="2dip"
android:paddingRight="2dip"
android:paddingTop="8dip"
android:shadowDx="0.0"
android:shadowDy="-1.0"
android:shadowRadius="1.0"
android:soundEffectsEnabled="true"
android:textColor="@color/blue"
android:textSize="20sp" />

<View
android:id="@+id/dialog_generic_view_titleline"
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_marginBottom="10dip"
android:background="@color/blue" />
</LinearLayout>

<LinearLayout
android:id="@+id/dialog_generic_layout_content"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="10dip"
android:paddingLeft="12dip"
android:paddingRight="12dip" >

<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fadingEdge="none" >

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="8dip"
android:paddingTop="4dip" >

<TextView
android:id="@+id/dialog_generic_htv_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/text_color"
android:textSize="14sp" />
</LinearLayout>
</ScrollView>
</LinearLayout>
</LinearLayout>

<LinearLayout
android:id="@+id/dialog_generic_layout_bottom"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
android:paddingBottom="12dip"
android:paddingLeft="6dip"
android:paddingRight="6dip"
android:paddingTop="0dip"
android:visibility="gone" >

<Button
android:id="@+id/dialog_generic_btn_button1"
style="@style/Style_Dialog_Button"
android:layout_width="0.0dip"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:text="Button"
android:visibility="gone"/>

<Button
android:id="@+id/dialog_generic_btn_button2"
style="@style/Style_Dialog_Button"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button"
android:visibility="gone"/>

<Button
android:id="@+id/dialog_generic_btn_button3"
style="@style/Style_Dialog_Button"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>

</LinearLayout>

依然是把TextView的文本随便填一下,把隐藏的控件暂时显示出来,看看预览效果图:

其实上面的布局文件是可以优化的,这里暂不讨论如何优化布局文件了。
主要结构:
一个标题,一个分割线,一个内容区,几个按钮,按钮估计是根据实际情况来显示。
需要注意的是内容区是在 ScrollView中设置的,便于显示超长文本的时候可以滚动显示。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
修改这段代码实现选择表格一行信息删除package frame; import javax.swing.; import java.awt.; import java.awt.event.ActionEvent; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; //添加页面 public class EditDialog extends BaseDialog{ DataChangelisenter dataChangelisenter; public void setDataChangelisenter(DataChangelisenter dataChangelisenter) { this.dataChangelisenter = dataChangelisenter; } @Override public void init() { setLayout(new FlowLayout()); //布局 setTitle("修改图书信息"); JPanel jp0=new JPanel(); JLabel l0 = new JLabel("id"); JTextField t0 = new JTextField(); t0.setPreferredSize(new Dimension(300,30)); jp0.add(l0); jp0.add(t0); JPanel jp1=new JPanel(); JLabel l1 = new JLabel("书名"); JTextField t1 = new JTextField(); t1.setPreferredSize(new Dimension(300,30)); jp1.add(l1); jp1.add(t1); JPanel jp2=new JPanel(); JLabel l2 = new JLabel("作者"); JTextField t2 = new JTextField(); t2.setPreferredSize(new Dimension(300,30)); jp2.add(l2); jp2.add(t2); JPanel jp3=new JPanel(); JLabel l3 = new JLabel("分类"); JTextField t3 = new JTextField(); t3.setPreferredSize(new Dimension(300,30)); jp3.add(l3); jp3.add(t3); JPanel jp4=new JPanel(); JLabel l4 = new JLabel("出版社"); JTextField t4 = new JTextField(); t4.setPreferredSize(new Dimension(300,30)); jp4.add(l4); jp4.add(t4); JPanel jp5=new JPanel(); JLabel l5 = new JLabel("数量"); JTextField t5 = new JTextField(); t5.setPreferredSize(new Dimension(300,30)); jp5.add(l5); jp5.add(t5); add(jp0); add(jp1); add(jp2); add(jp3); add(jp4); add(jp5); JButton b1 = new JButton("保存"); b1.setPreferredSize(new Dimension(150,30)); b1.addActionListener(new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { String id = t0.getText(); String sname = t1.getText(); String author = t2.getText(); String classify = t3.getText(); String press = t4.getText(); String quantity = t5.getText(); Connection con = DBUtil.getConnect(); String sql = "UPDATE tushu SET sname=?,author=?,classify=?,press=?,quantity=? WHERE id=?"; try { PreparedStatement ps = con.prepareStatement(sql); ps.setString(1,sname); ps.setString(2,author); ps.setString(3,classify); ps.setString(4,press); ps.setString(5,quantity); ps.setString(6,id); int result = ps.executeUpdate(); if (result>0){ JOptionPane.showMessageDialog(EditDialog.this,"修改成功"); // new StudentFrame(); dataChangelisenter.dataChange(); dispose(); }else { JOptionPane.showMessageDialog(EditDialog.this,"修改失败"); } } catch (SQLException throwables) { throwables.printStackTrace(); } } }); add(b1); } }
05-25
修改后的代码如下: ``` package frame; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; public class EditDialog extends BaseDialog{ DataChangelisenter dataChangelisenter; JTable table; public void setDataChangelisenter(DataChangelisenter dataChangelisenter) { this.dataChangelisenter = dataChangelisenter; } public void setTable(JTable table) { this.table = table; } @Override public void init() { setLayout(new FlowLayout()); // 布局 setTitle("修改图书信息"); JPanel jp0 = new JPanel(); JLabel l0 = new JLabel("id"); JTextField t0 = new JTextField(); t0.setPreferredSize(new Dimension(300, 30)); jp0.add(l0); jp0.add(t0); JPanel jp1 = new JPanel(); JLabel l1 = new JLabel("书名"); JTextField t1 = new JTextField(); t1.setPreferredSize(new Dimension(300, 30)); jp1.add(l1); jp1.add(t1); JPanel jp2 = new JPanel(); JLabel l2 = new JLabel("作者"); JTextField t2 = new JTextField(); t2.setPreferredSize(new Dimension(300, 30)); jp2.add(l2); jp2.add(t2); JPanel jp3 = new JPanel(); JLabel l3 = new JLabel("分类"); JTextField t3 = new JTextField(); t3.setPreferredSize(new Dimension(300, 30)); jp3.add(l3); jp3.add(t3); JPanel jp4 = new JPanel(); JLabel l4 = new JLabel("出版社"); JTextField t4 = new JTextField(); t4.setPreferredSize(new Dimension(300, 30)); jp4.add(l4); jp4.add(t4); JPanel jp5 = new JPanel(); JLabel l5 = new JLabel("数量"); JTextField t5 = new JTextField(); t5.setPreferredSize(new Dimension(300, 30)); jp5.add(l5); jp5.add(t5); add(jp0); add(jp1); add(jp2); add(jp3); add(jp4); add(jp5); JButton b1 = new JButton("保存"); b1.setPreferredSize(new Dimension(150, 30)); b1.addActionListener(new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { String id = t0.getText(); String sname = t1.getText(); String author = t2.getText(); String classify = t3.getText(); String press = t4.getText(); String quantity = t5.getText(); Connection con = DBUtil.getConnect(); String sql = "UPDATE tushu SET sname=?,author=?,classify=?,press=?,quantity=? WHERE id=?"; try { PreparedStatement ps = con.prepareStatement(sql); ps.setString(1,sname); ps.setString(2,author); ps.setString(3,classify); ps.setString(4,press); ps.setString(5,quantity); ps.setString(6,id); int result = ps.executeUpdate(); if (result > 0){ JOptionPane.showMessageDialog(EditDialog.this,"修改成功"); // 删除选中的行 int selectedRow = table.getSelectedRow(); DefaultTableModel model = (DefaultTableModel) table.getModel(); if (selectedRow != -1) { model.removeRow(selectedRow); } dataChangelisenter.dataChange(); dispose(); }else { JOptionPane.showMessageDialog(EditDialog.this,"修改失败"); } } catch (SQLException throwables) { throwables.printStackTrace(); } } }); add(b1); } } ``` 在这个代码中,我们添加了一个 `setTable` 方法,用于设置需要操作的表格对象。然后,在保存按钮的事件监听器中,我们通过 `table.getSelectedRow()` 来获取当前选中的行,然后使用 `DefaultTableModel` 的 `removeRow` 方法来删除该行数据。最后,我们调用 `dataChangelisenter.dataChange()` 方法来通知主界面数据已经发生了改变。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

asmcvc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值