的默认布局管理器是BorderLayout,BorderLayout将容器(也就是JFrame)分成东
西
南
北
中
五个部分,向JFrame添加控件时BorderLayout默认将控件的位置设置为中间位置,所以你的设置不起作用
看了你的问题是想通过坐标控制控件,所以要将JFrame的布局管理器设置为绝度布局,即
mainFrame.setLayout(null)将布局管理器设置为null.
向其中动态添加文字有两种实现方式
1、是重写JPanel的paintComponent(Graphics
g)方法2、是动态添加JLabel
空布局的话,必须指定setLayout(null)使用public void setBounds(int x,
int y,
int width,
int height)移动组件并调整其大小。由 x 和 y 指定左上角的新位置,由 width 和 height 指定新的大小。
import java.awt.Container
import javax.swing.JButton
import javax.swing.JFrame
public class NullLayout extends JFrame {
private JButton jb0, jb1, jb2, jb3, jb4, jb5, jb6, jb7, jb8, jb9
public NullLayout() {
// TODO Auto-generated constructor stub
super("空布局")
Container c = getContentPane()
c.setLayout(null)
jb0 = new JButton("按钮0")
jb1 = new JButton("按钮1")
jb2 = new JButton("按钮2")
jb3 = new JButton("按钮3")
jb4 = new JButton("按钮4")
jb5 = new JButton("按钮5")
jb6 = new JButton("按钮6")
jb7 = new JButton("按钮7")
jb8 = new JButton("按钮8")
jb9 = new JButton("按钮9")
//参数分别为x坐标、y坐标、宽、高
jb0.setBounds(0, 1, 100, 30)
c.add(jb0)
jb1.setBounds(105, 1, 100, 30)
c.add(jb1)
jb2.setBounds(205, 1, 100, 30)
c.add(jb2)
jb3.setBounds(305, 1, 100, 30)
c.add(jb3)
jb4.setBounds(405, 1, 100, 30)
c.add(jb4)
jb5.setBounds(0, 35, 100, 30)
c.add(jb5)
jb6.setBounds(105, 35, 100, 30)
c.add(jb6)
jb7.setBounds(205, 35, 100, 30)
c.add(jb7)
jb8.setBounds(305, 35, 100, 30)
c.add(jb8)
jb9.setBounds(405, 35, 100, 30)
c.add(jb9)
setSize(520, 400)
setVisible(true)
//关闭窗口时,关闭运行程序
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
}
public static void main(String[] args) {
new NullLayout()
}
}
感觉应该是改参数,下面参数的使用:使用实例:
(1)显示MessageDialog
JOptionPane.showMessageDialog(null, "在对话框内显示的描述性的文字", "标题条文字串", JOptionPane.ERROR_MESSAGE)
(2)显示ConfirmDialog
JOptionPane.showConfirmDialog(null, "choose one", "choose one", JOptionPane.YES_NO_OPTION)
(3)显示OptionDialog:该种对话框可以由用户自己来设置各个按钮的个数并返回用户点击各个按钮的序号(从0开始计数)
Object[] options = {"确定","取消","帮助"}
int response=JOptionPane.showOptionDialog(this, "这是个选项对话框,用户可以选择自己的按钮的个数", "选项对话框标题",JOptionPane.YES_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0])
if(response==0)
{ this.setTitle("您按下了第OK按钮 ")
}
else if(response==1)
{ this.setTitle("您按下了第Cancel按钮 ")
}
else if(response==2)
{ this.setTitle("您按下了第Help按钮 ")
}
(4)显示InputDialog 以便让用户进行输入
String inputValue = JOptionPane.showInputDialog("Please input a value")
(5)显示InputDialog 以便让用户进行选择地输入
Object[] possibleValues = { "First", "Second", "Third" }//用户的选择项目
Object selectedValue = JOptionPane.showInputDialog(null, "Choose one", "Input",JOptionPane.INFORMATION_MESSAGE, null, possibleValues, possibleValues[0])
setTitle("您按下了"+(String)selectedValue+"项目")
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)