java编写图形界面需要用到swing等组件,可以在eclipse中安装windowbuilder来开发窗体,自动生成窗体代码,然后自己再根据需要修改,如:
package mainFrame
import java.awt.EventQueue
import java.awt.event.MouseAdapter
import java.awt.event.MouseEvent
import javax.swing.ImageIcon
import javax.swing.JButton
import javax.swing.JCheckBox
import javax.swing.JFrame。
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
以下是一个简单的Java GUI程序,可以实现两个内容(字符串、图片等)之间的交换:Copy code
import java.awt.*
import java.awt.event.*
import javax.swing.*
public class SwapContent extends JFrame implements ActionListener {
private JLabel label1, label2
private JButton swapBtn
public SwapContent() {
// 设置窗口大小和标题
setSize(400, 300)
setTitle("Swap Content Demo")
// 创建标签和按钮
label1 = new JLabel("Content A")
label2 = new JLabel("Content B")
swapBtn = new JButton("Swap")
// 设置标签和按钮的位置和大小
label1.setBounds(50, 50, 100, 30)
label2.setBounds(200, 50, 100, 30)
swapBtn.setBounds(150, 150, 100, 30)
// 将标签和按钮添加到窗口中
add(label1)
add(label2)
add(swapBtn)
// 注册按钮的事件监听器
swapBtn.addActionListener(this)
// 设置窗口的默认关闭方式
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
}
@Override
public void actionPerformed(ActionEvent e) {
// 获取标签的内容
String temp = label1.getText()
label1.setText(label2.getText())
label2.setText(temp)
}
public static void main(String[] args) {
// 创建窗口对象并显示
SwapContent sc = new SwapContent()
sc.setVisible(true)
}
}
该程序创建了一个窗口,包括两个标签(label1和label2)和一个按钮(swapBtn)。当用户点击按钮时,程序会交换label1和label2的内容。
在程序的actionPerformed方法中,程序将label1和label2的内容交换。具体实现是,首先使用label1.getText()获取label1的内容,并将其保存到一个临时变量temp中;然后,将label1的内容设置为label2的内容,将label2的内容设置为temp的值。这样,label1和label2的内容就被互换了。
在main方法中,程序创建了SwapContent对象,并将其显示出来。程序运行后,用户可以在窗口中交换label1和label2的内容。
运行如图
参考代码如下
import java.awt.*import java.awt.event.*
import javax.swing.*
public class RegDemo extends JFrame implements ActionListener{
JTextField jtf
JPasswordField jpf
public RegDemo() {
//组件的创建, 和布局安排
JPanel jpc = new JPanel()//默认流式布局
JPanel jp1 = new JPanel(new GridLayout(2, 2,5,10))//网格布局
jp1.setBorder(BorderFactory.createTitledBorder("用户注册"))
JLabel jl1 = new JLabel("用户名:")
jtf = new JTextField(10)
JLabel jl2 = new JLabel("密码:")
jpf = new JPasswordField(10)
jpf.setEchoChar('*')//用*号来隐藏密码的显示
jp1.add(jl1)jp1.add(jtf)
jp1.add(jl2)jp1.add(jpf)
jpc.add(jp1)
add(jpc)
JButton jb1 = new JButton("提交")
jb1.addActionListener(this)
jb1.setActionCommand("yes")
JButton jb2 = new JButton("取消")
jb2.addActionListener(this)
jb2.setActionCommand("no")
JPanel jp2 = new JPanel()
jp2.add(jb1)jp2.add(jb2)
add(jp2,BorderLayout.SOUTH)
setTitle("用户注册界面")
setSize(280, 280)
setLocationRelativeTo(null)//窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE)//
setVisible(true)
}
public static void main(String[] args) {
new RegDemo()
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("yes")){
String name = jtf.getText().trim()
String pwd = new String(jpf.getPassword())
if(name.equals("")||pwd.equals("")){
JOptionPane.showMessageDialog(this, "你还没有输入用户名或者密码")
}else{
JOptionPane.showMessageDialog(this, "注册成功!用户名"+name+",密码"+pwd)
}
}else{
jtf.setText("")
jpf.setText("")
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)