2022.5.24
我!做!完!了!
本来昨天就已经实现wordle小游戏的基本功能的,但是后续再查看老师发的小项目要求的时候,发现自己还有几个功能没实现,所以今天又改了一天——
所以说,上学时不好好审老师的题,以后出来工作不仔细检查甲方的要求
哎……真是……还好添加起来并不难
话不多说,让我们看看今天的代码——
package Mini;
public class Test8 {
public static void main(String[] args) {
System.out.println("HELLO WORLD!");
}
}
虚晃一(狗头保命
是这样的,由于昨天没发文章,所以这次的进度和上次相比有了巨大的飞跃,要是全在一个文章里讲完的话篇幅就太大了。所以这次我并不打算讲我写好的代码,但我会发一些做这个小项目时非常非常非常需要的几段代码,有的甚至重要到需要在代码中多次出现。
这些代码不单单对这次的java小项目有用,对以后写别的项目也很有用,这也是我写文章的意义——因为我老是忘记学到的知识,每次需要用到知识点的时候又找不到了,找到又要重新理解学习一遍(◕ˇ∀ˇ◕)
(1)布局按钮
我在网上搜到了一段,但是有点问题,它只能让两个及以上的按钮分布在对应的位置,比如给button1赋予south定位,它就在button2的南边,但是它的位置不能固定,具体内容请点击=>用相对方位布局按钮
而我最后的界面是这样的
所以想要达成这个初始界面的话,需要把代码改成这样
JFrame f = new JFrame("Wordle Game");
f.setSize(400,250);
f.setLocation(400,300);
f.setLayout(null);//为了重新布局按钮需要清空现有默认布局
JButton introd = new JButton("Instruction"); //添加按钮
introd.setBounds(30,140,100,30);//rb.setBounds(250,140,100,30);
f.add (introd);
f.setVisible(true);
(2)点击按钮清空文本框里的内容
其实思路就是点击了之后把TextField里的内容重置为null,这次是可以直接运行的完整代码
package Mini;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Test6 extends JFrame {
JButton button = null;
JTextField field = null;
JPanel jp = null;//还能学学panel
public Test6(){
this.setTitle("");
this.setSize(100, 100);
this.setLocation(400,300);
button = new JButton("test");//button的
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
field.setText("");
}
});
field = new JTextField();
field.setText("DQYDQYDQY");
jp = new JPanel();
this.getContentPane().add(jp);//?
jp.add(button);
jp.add(field);
}
public static void main(String[] args){
Test6 test = new Test6();
test.setVisible(true);
}
}
(3)点击“确认”可关闭当前窗口
一般来说直接添加按钮,按钮会跟在现有文本后面。所以在添加按钮前要添加一个很长很长的空白文本,将她俩隔离开来
JLabel jl = new JLabel(" ");
Font font0 = new Font("黑体", Font.PLAIN, 35);
jl.setFont(font0);
nochoose.add(jl);
JButton jbb=new JButton("确定");//这个!
jbb.setBounds(100,100,60,30);
nochoose.add(jbb);
jbb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
nochoose.dispose();
}
});
(4)添加一个文本
能用来添加文本的方式太多啦!
代码1(container)
JDialog jd=new JDialog(jf,"JDialog窗体",true);
Dialog1(){
jd.setSize(300,200);
Container c2=jd.getContentPane();//jd是dialog名
c2.setLayout(null);
JLabel jl=new JLabel("只是一个对话框");
jl.setBounds(0,20,100,100);
c2.add(jl);
jd.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
界面1
代码2(Jlabel,但一次只能输入一行)
JFrame f = new JFrame("Wordle Game");
f.setLayout(new FlowLayout( FlowLayout.CENTER));
JLabel jl1 = new JLabel("Gameplay Instructions");
Font font0 = new Font("黑体", Font.PLAIN, 35);
jl1.setFont(font0);
jl1.setForeground(new Color(46,45,205));
f.add(jl1);
界面2
代码3(JTextArea,为了让一个地方出现不同的内容,用来获取list中的字符,然后append上去)
JTextArea area1 = new JTextArea(2,5);
area1.setLineWrap(true);
char[] cc=new char[5];
// int cs;
for(int i=0;i"+y);
f.add(area1);
也有完整版的代码
package Mini;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;
import javax.swing.text.DefaultCaret;
public class Test2 {
public static void main(String args[]) {
JTextArea textArea = new JTextArea();
JFrame f = new JFrame();
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
DefaultCaret caret = new DefaultCaret() {
public boolean isSelectionVisible() {
return true;
}
};
textArea.setCaret(caret);
textArea.setFont(new java.awt.Font("Miriam Fixed", 0, 13));
Color color = Color.BLUE;
// textArea.setBackground(color);
textArea.setSelectedTextColor(color);
f.getContentPane().add(new JScrollPane(textArea));
f.pack();
f.setVisible(true);
}
}
界面3
(4)菜单栏选择(这个我没用上,不过也很有用,完整的代码)
package Mini;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Test4 extends JFrame implements ActionListener{
private JMenuBar menubar;
private JMenuItem menuItem,a,b;
private JMenu menu,submenu;
private JTextArea text;
private JScrollPane scrollPane;
public Test4(){
super("Test4");
setSize(400,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container cp = getContentPane();
text = new JTextArea(5,30);
scrollPane = new JScrollPane(text);
cp.add(scrollPane,BorderLayout.CENTER);
menubar = new JMenuBar();
setJMenuBar(menubar);
menu = new JMenu("文件"); //文件菜单
menubar.add(menu);
submenu = new JMenu("change color");
submenu.addActionListener(this);
submenu.setActionCommand("change color");
menu.add(submenu);
a = new JMenuItem("red");
a.addActionListener(this);
a.setActionCommand("red");
submenu.add(a);
b = new JMenuItem("blue");
b.addActionListener(this);
b.setActionCommand("blue");
submenu.add(b);
menuItem = new JMenuItem("标签");
menuItem.addActionListener(this);
menuItem.setActionCommand("标签");
menu.add(menuItem);
menu = new JMenu("编辑"); //编辑菜单
menubar.add(menu);
}
public void actionPerformed(ActionEvent e) {
String a = e.getActionCommand();
if(a.equals("red")){
this.text.setBackground(Color.RED);
}
if(a.equals("blue")){
this.text.setBackground(Color.BLUE);
}
}
public static void main(String []args){
Test4 eg = new Test4();
eg.setVisible(true);
}
}