北邮国院大二java mini project记录贴(三)

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<list.size();i++) {
				System.out.println("eeee");
	            	cc[i]=list.get(i).getContentt();
//	            	cs=list.get(i).getSeatt();
			}
			
			String y=String.valueOf(cc);
			area1.append("=>"+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);
	}
}

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值