改变button状态

weilairen 2008-03-05 10:45:53
第一回使用swing,遇到好多问题
说正题
这是个内部类,就是个翻页显示功能,其中的list由外部类提供,现在的问题是:当第一次由外部调用方法dataView()时,setParam()中的代码为什么不起作用??
class PagePanel extends JPanel implements ActionListener {

int intPageSize = 15; // 一页显示的记录数
int intRowCount = 0; // 记录总数
int intPageCount = 0; // 总页数
int intPage = 1; // 待显示页码
JButton button1 = new JButton("上一页");//
JButton button2 = new JButton("下一页");
JTextField pageText = new JTextField();
JLabel label0 = new JLabel(" ");
JLabel label1 = new JLabel("转到");
JLabel label2 = new JLabel("页");
JButton button3 = new JButton("GO");
Dimension d = new Dimension(75, 20);
Dimension dt = new Dimension(45, 20);

public PagePanel() {
button1.setPreferredSize(d);
button2.setPreferredSize(d);
pageText.setPreferredSize(dt);
button3.setPreferredSize(d);
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
this.add(label0);
this.add(button1);
this.add(button2);
this.add(label1);
this.add(pageText);
this.add(label2);
this.add(button3);
}

public void actionPerformed(ActionEvent e) {
Object o = e.getSource();
if(o == button1) {
intPage--;
}
if(o == button2) {
intPage++;
}
if(o == button3) {
try {
String t = pageText.getText();
if(t.equals("" + intPage))
return;
intPage = Integer.parseInt(t);
} catch(Exception ex) {
pageText.setText("" + intPage);
System.out.print("转换数字时出错!");
return;
}
}
dataView();
}

public void dataView() {
setParam();//
// 开始索引
int index = (intPage - 1) * intPageSize;
if(index < 0)
index = 0;
jpane.setText("");
for(int i = index; i < list.size() && i < intPage * intPageSize; i++) {
//输出内容,省略...
}
}

public void setParam() {
intRowCount = list.size();
intPageCount = intRowCount % intPageSize == 0 ? intRowCount
/ intPageSize : intRowCount / intPageSize + 1;
tittleLabel.setText("显示结果");//这行管用
label0.setText("共" + intPageCount + "页");//??
if(intPage < 1)
intPage = 1;
if(intPage >= intPageCount)
intPage = intPageCount;

if(intPage == 1)
button1.setEnabled(false);//??
else
button1.setEnabled(true);
if(intPage == intPageCount)
button2.setEnabled(false);
else
button2.setEnabled(true);//??
pageText.setText(String.valueOf(intPage));//??
}
}
第一次执行是 intPage=1,为啥//?? 的代码没有起到作用,也执行了
只有当我点击翻页按钮时 才起作用?
还用,经过翻页操作后,如果再从外部调用dataView()方法,刚才说的这些代码依然不起作用,但数据在更新
纳闷!!
用内部类的问题吗?但也执行了啊,为啥没效果
高手指点!!
...全文
170 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧