
可以通过在actionPerformed里调用jPanel.add(new JButton("XXX"))来增加一个按钮.
//注jPanel是JPanel的一个实例.
但点击的时候,按钮实际上是建立了,但却没有显示出来.这时如果你改变一下你的窗口大小的话,你会发现,这个按钮已经建立了.这就需要在add之后,让窗口重绘了.
理论上再调用repaint()可以重绘,但我试过之后发现还是没有直接把这个按钮显示出来
我们知道,画布的大小被改变的时候,肯定是会重绘的,所以可以我试了一个很笨的方法,用setSize(0,0)之后,再setSize(yourX,yourY)当然,你如果是自然调整大小的,后面加一个pack()就OK了.这样会看到类似于网页刷新似的一闪,就会多出一个按钮来了.
当然我觉得应该有更好的办法可以来通知系统重绘窗口.
问题补充做打首先楼主你的Dialog
其实已经添加了按钮,只不过一开始没有显示
你需要用鼠标拖动一下对话框,才能显示按钮,
第二添加事件监听就象我以前说的一样
使用的是btn.addActionListener(new ActionListener(){
事件代码
})
我补充了一下你的代码
如下:
import java.awt.BorderLayout
import java.awt.Color
import java.awt.Container
import java.awt.Dialog
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import java.awt.event.WindowAdapter
import java.awt.event.WindowEvent
import java.io.File
import javax.swing.JButton
import javax.swing.JFrame
import javax.swing.JPanel
import javax.swing.JTextField
public class Del {
JTextField pathField
JFrame delFrame
JPanel panel
Dialog completeDialog
public static void main(String[] args) {
new Del()
}
public Del() {
frameDel()
}
public void frameDel() {
delFrame = new JFrame("文件删除器")
delFrame.setBounds(150, 150, 500, 200)
delFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
delFrame.setVisible(true)
delFrame.setLayout(null)
panel = new JPanel()
Container con = delFrame.getContentPane()
con.setBounds(0, 0, 400, 200)
con.setBackground(new Color(222, 111, 111))
con.setLayout(null)
pathField = new JTextField()
pathField.setBounds(30, 30, 250, 30)
con.add(pathField)
JButton delButton = new JButton("删除")
delButton.setBounds(350, 30, 60, 30)
con.add(delButton)
delButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
delFile(pathField.getText())
}
})
delFrame.validate()
delFrame.repaint()
}
public void delFile(String path) {
File goalFile = new File(path)
if (goalFile.exists()) {
goalFile.delete()
completeDialog = new Dialog(delFrame, "删除结果提示")
completeDialog.setVisible(true)
completeDialog.setBounds(250, 250, 250, 90)
completeDialog.setModal(true)
JButton testButton = new JButton("继续删除")
JButton testButton2 = new JButton("退出")
completeDialog.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0)
}
})
testButton2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0)
}
})
testButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
completeDialog.setVisible(false)
}
})
panel.add(testButton,BorderLayout.WEST)
panel.add(testButton2,BorderLayout.EAST)
completeDialog.add(panel,BorderLayout.CENTER)
pathField.setText("文件删除成功!")
} else {
pathField.setText("文件不存在!")
}
}
}
不过缺点在于以显示的时候只有一个对话框,没有按钮,只有用鼠标拖动对话框的大小后才能显示按钮,我这个在找方法,希望你能找到方法解决,我对javaGUI学的不深,希望有哪位大侠可以给个方法解决一下一开始不显示按钮的问题
你所有画出来的东西要放在paint方法里你如果想画多条 就把所有的线条先保存在一个集合里
再遍历这个集合把每一条线条画出来
这个集合可以弄成变量 你每多一条线条
就把这个线条放进集合里,然后再repaint一下就行了
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)