首页 > 编程语言 >GUI编程process4

GUI编程process4

时间:2024-08-12 19:38:14浏览次数:11  
标签:java GUI 编程 class process4 add new import public

1、GUI编程(AWT,Swing)

  • 图形界面编程
  • 元素:窗口,弹窗,面板,文本框,列表框,按钮,图片,监听时间,鼠标,键盘事件,破解工具

2、简介

Gui的核心技术:Wing 和 AWT ,因为界面不美观,需要jre环境

AWT(Abstract Window Toolkit)是‌Java中最早的图形用户界面开发包,而Swing是在AWT的基础上构建的。Swing组件大多数继承自对应的AWT组件,并添加了更多功能和特性。因此,Swing与AWT具有一些共同的特点和方法。‌

  1. 可以实现自己心中的一些小工具
  2. 了解MVC架构,了解监听!

3、AWT介绍

  • 包含了很多的类和接口 GUI!

  • 元素:窗口、按钮、文本框

  • 组建和容器——用来存放

4、Frame窗口、panel面板、3种布局管理器FlowLayout

  • 总结
    1. Frame是一个顶级窗口
    2. Panel无法单独享受,必须添加在某个容器中
    3. 布局管理器
      • 流式
      • 东西南北中
      • 表格

​ 4.大小,定位,背景颜色,可见性,监听

4.1 Frame窗口

  1. Frame.JDK,看源码(Structure)

  2. 设置可见性

  3. 设置窗口大小

  4. 设置背景颜色

    frame.setBackground(new Color(165, 60, 60));//可以调色
    
  5. 弹出的初始位置

  6. 设置大小固定

    package gui;
    public class testFrame
    
  7. 设置多个弹窗

    回顾继承、有参构造器、super调用

    package gui;
    public class testFrame2
    

问题:弹窗关闭不了,停止z程序运行才行

4.2 panel面板--可以看作是一个空间,但是不能单独存在

  1. 存在布局的概念setLayout();

  2. 设置布局

  3. 坐标、背景颜色

  4. panel设置坐标,相对于Frame

    frame.add(panel);

    如果要多个面板,就 new panel重新设置参数

  5. 监听事件,监听窗口关闭事件,system.exit();

    需要重写的代码太多了,选择适配器模式(又是一门课),new一个子类,选择重写其中一个模式

    //需要重写的代码太多了,选择适配器模式,new一个子类,选择重写其中一个模式
    frame.addWindowListener(new WindowAdapter() {
        //窗口点击关闭的时候需要做的事情
        @Override
        public void windowClosing(WindowEvent e) {
            //结束程序
            System.exit(0);//0正常退出,1异常退出
        }
    }) ;
    
package gui;

public class testPanel

4.3 3种布局管理器

  • 流式布局(一排一排布局)FlowLayout
  1. 组件-按钮 Button();

  2. 设置为流失布局(默认在上中)

    设置在左上--frame.setLayout(new FlowLayout(FlowLayout.LEFT));

  3. 把按钮添加上去

package gui;
public class testFlowLayout 
  • 东南西北中 BorderLayout
package gui;
public class testBorderLayout
  • 表格布局 GridLayout

    frame.pack();//Java函数!自动布局

package gui;
public class testGridLayout 

4.4 练习题-10个Button

练习

package gui;
public class layoutPractice

5、监听(不用懂,直接用)

5.1事件监听

当某个事件发生的什么,干什么?

  1. 按下按钮,出发一些事件

  2. 因为addActionListener()需要一个ActionListener,所以需要构造一个ActionListener

  3. 关闭窗体事件——写成方法调用

    private static void windowClose(Frame frame) {
        frame.addWindowListener(new WindowAdapter() {
            //窗口点击关闭的时候需要做的事情
            @Override
            public void windowClosing(WindowEvent e) {
                //结束程序
                System.exit(0);//0正常退出,1异常退出
            }
        });
    }
    
package gui;
public class testListen
  1. 两个按钮,实现同一个监听(开始,停止)

    可以显示的定义触发会返回的内容,可以多个按钮写一个监听类

package gui;
public class testListen2

5.2输入框TextFiled事件监听

一般main方法里只有执行程序,其他程序写在其他类中

文本框输入,代码实现

package gui;
public class testListen3 

5.3做一个简易的计算器,组合+内部类回顾复习

package gui;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

//简体计算器
public class testCalc {
    public static void main(String[] args) {
        new Calc();
    }
}
//计算器类
class Calc extends Frame {
    public Calc() {
        //3 个文本框
        TextField num1 = new TextField(10);//字符数
        TextField num2 = new TextField(10);//字符数
        TextField num3 = new TextField(20);//字符数

        //1 个按钮
        Button button = new Button("=");
        button.addActionListener(new myCalc(num1,num2,num3));

        //1 个标签
        Label label = new Label("+");

        //布局
        setLayout(new FlowLayout());

        add(num1);
        add(label);
        add(num2);
        add(button);
        add(num3);

        pack();
        setVisible(true);
    }
}
//监听器类-控制frame内容
class myCalc implements ActionListener{
    //获取三个变量
    //通过指定参数,不需要设置set,get更快捷
    private TextField num1,num2,num3;
    public myCalc(TextField num1,TextField num2,TextField num3){
        this.num1=num1;
        this.num2=num2;
        this.num3=num3;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        //1.获得加数和被加数--将String类型转换为int类型(通过包机制)
        int n1=Integer.parseInt(num1.getText());
        int n2=Integer.parseInt(num2.getText());

        //2.将这个值+法运算后,放在第三个框
        num3.setText(""+(n1+n2));

        //3.清除前两个框
        num1.setText("");
        num2.setText("");
    }
}

oop原则:组合大于继承!——优先使用组合

采用组合来写

package gui;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

//简体计算器
public class testCalc {
    public static void main(String[] args) {
        new Calc().loadFrame();
    }
}
//计算器类
class Calc extends Frame {
        //类里面有两个东西 属性+方法
        //属性
        TextField num1,num2,num3;
        //方法
        public void loadFrame(){
            //3 个文本框
            num1 = new TextField(10);//字符数
            num2 = new TextField(10);//字符数
            num3 = new TextField(20);//字符数

            //1 个按钮
            Button button = new Button("=");
            button.addActionListener(new myCalc(this));

            //1 个标签
            Label label = new Label("+");

            //布局
            setLayout(new FlowLayout());

            add(num1);
            add(label);
            add(num2);
            add(button);
            add(num3);

            pack();
            setVisible(true);
        }

}
//监听器类-控制frame内容
class myCalc implements ActionListener{
    //获取计算器这个对象,在一个类中组合另外一个类
    Calc calc = null;
    public myCalc(Calc calc){
        this.calc = calc;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        //1.获得加数和被加数--将String类型转换为int类型(通过包机制)
        //2.将这个值+法运算后,放在第三个框
        //3.清除前两个框
        int n1 = Integer.parseInt(calc.num1.getText());
        int n2 = Integer.parseInt(calc.num2.getText());
        calc.num3.setText(""+(n1+n2));
        calc.num1.setText("");
        calc.num2.setText("");
    }
}

继续采用内部类来写(内部类最大的好处——畅通无阻的访问外部类的方法)

  • 更好的包装

    package gui;
    
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    //简体计算器
    public class testCalc {
        public static void main(String[] args) {
            new Calc().loadFrame();
        }
    }
    //计算器类
    class Calc extends Frame {
            //类里面有两个东西 属性+方法
            //属性
            TextField num1,num2,num3;
            //方法
            public void loadFrame(){
                //3 个文本框
                num1 = new TextField(10);//字符数
                num2 = new TextField(10);//字符数
                num3 = new TextField(20);//字符数
    
                //1 个按钮
                Button button = new Button("=");
                button.addActionListener(new myCalc());
    
                //1 个标签
                Label label = new Label("+");
    
                //布局
                setLayout(new FlowLayout());
    
                add(num1);
                add(label);
                add(num2);
                add(button);
                add(num3);
    
                pack();
                setVisible(true);
            }
        //监听器类-控制frame内容
        private class myCalc implements ActionListener{
            @Override
            public void actionPerformed(ActionEvent e) {
                //1.获得加数和被加数--将String类型转换为int类型(通过包机制)
                //2.将这个值+法运算后,放在第三个框
                //3.清除前两个框
                int n1 = Integer.parseInt(num1.getText());
                int n2 = Integer.parseInt(num2.getText());
                num3.setText(""+(n1+n2));
                num1.setText("");
                num2.setText("");
            }
        }
    
    }
    

6、画笔paint

package gui;
public class testPaint

7、(鼠标、窗口、键盘)监听事件--模拟画图工具

  1. 鼠标监听

    目的:想要实现鼠标画画

    package gui;
    public class testMouseListener 
    
  2. 窗口监听

    package gui;
    
    import java.awt.*;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;
    
    public class testWindow {
        public static void main(String[] args) {
            new windowFrame();
        }
    }
    class windowFrame extends Frame {
        public windowFrame(){
            setBackground(new Color(133, 133, 164));
            setBounds(300,300,500,500);
            setVisible(true);
            addWindowListener(new myWindow());
        }
        class myWindow extends WindowAdapter{
            @Override
            public void windowClosing(WindowEvent e) {
             //   setVisible(false);//隐藏窗口
                System.exit(0);//正常退出
            }
        }
    }
    

    匿名内部内来写

    package gui;
    
    import java.awt.*;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;
    
    public class testWindow {
        public static void main(String[] args) {
            new windowFrame();
        }
    }
    class windowFrame extends Frame {
        public windowFrame() {
            setBackground(new Color(133, 133, 164));
            setBounds(300, 300, 500, 500);
            setVisible(true);
            //匿名内部类来写
            this.addWindowListener(
                    new WindowAdapter(){
                        @Override
                        public void windowClosing(WindowEvent e) {
                            System.out.println("窗口已关闭");
                            System.exit(0);
                        }
    
                        //没什么意义
                        @Override
                        public void windowOpened(WindowEvent e) {
                            windowFrame source =(windowFrame) e.getSource();
                            source.setTitle("被激活了");
                            System.out.println("窗口被激活");
                        }
                    });
        }
    }
    
  3. 键盘监听

    package gui;
    
    import java.awt.*;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;
    
    //键盘监听
    public class testKey {
        public static void main(String[] args) {
            new myKey();
        }
    }
    class myKey extends Frame {
        public myKey(){
            setBounds(1,2,300,500);
            setVisible(true);
            this.addKeyListener(new KeyAdapter() {
                //键盘按下的事件
                @Override
                public void keyPressed(KeyEvent e) {
                    //键盘按下的键是那个--不需要记录数值,直接使用静态属性 比如VK_UP
                    int keyCode = e.getKeyCode();
                    System.out.println(keyCode);
                    if(keyCode == KeyEvent.VK_UP){//键盘按下
                        System.out.println("按下了上键");
                    }
                    //根据按下的不同按键,产生不同的操作
                }
            });
        }
    }
    

8、Swing之JFrame窗体(优先)

package gui2;

import javax.swing.*;
import java.awt.*;

public class jFrameDemo {
    //init();初始化
    public void init(){
        JFrame frame = new JFrame("这是一个JFrame窗口");
        frame.setVisible(true);
        frame.setBounds(100,100,300,300);
        //frame.setBackground(new Color(100, 100, 231));

        //设置文字JLable
        JLabel lable = new JLabel("小胖世界第一");
        frame.add(lable);

        //设置背景颜色不成功,需要容器实例化
        Container container = frame.getContentPane();
        container.setBackground(new Color(100, 100, 231));

        //设置文字居中
        lable.setHorizontalAlignment(SwingConstants.CENTER);

        //关闭事件
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        //建立一个窗口
        new jFrameDemo().init();
    }
}

9、JDialog弹窗

package gui2;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

//主窗口
public class jDialog extends JFrame {
    public static void main(String[] args) {
        new jDialog();
    }
    public jDialog() {
        this.setSize(700,500);
        this.setVisible(true);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        //JFrame 放东西,容器
        Container container = this.getContentPane();

        //绝对布局——窗口不可调整
        container.setLayout(null);

        //按钮
        JButton button = new JButton("点击弹出一个对话框");//创建
        button.setBounds(30,30,100,100);

        //点击这个按钮后弹出一个弹窗
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //弹窗
                new myDialog();
            }
        });
        container.add(button);
    }
}
//弹窗的窗口
class myDialog extends JDialog{
    public myDialog() {
        this.setVisible(true);
        this.setBounds(100,100,300,300);
     //   this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//弹窗默认可关闭

        Container container = this.getContentPane();
        container.setLayout(null);
        
    }
}

10、界面控制

10.1、标签

  • Icon——图标(label,Jlabel)

  • 文字标签

    package gui3;
    
    import javax.swing.*;
    import java.awt.*;
    
    //icon(图标)是一个接口,需要实现类,Frame继承
    public class iconDemo1 extends JFrame implements Icon {
        private int width;
        private int height;
    
        public static void main(String[] args) {
         new iconDemo1().init();
        }
    
        public void init(){
            iconDemo1 icon1 = new iconDemo1(15, 15);
            //图标放在标签上,也可以放在按钮上
           JLabel jlabel =  new JLabel("icontest",icon1,SwingConstants.CENTER);
    
            Container container = getContentPane();
            container.add(jlabel);
    
            this.setVisible(true);
            this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        }
    
        public iconDemo1() {}//无参构造
    
        public iconDemo1(int width, int height) {}
    
        @Override
        public void paintIcon(Component c, Graphics g, int x, int y) {
            g.fillOval(x,y,width,height);
        }
    
        @Override
        public int getIconWidth() {
            return this.width;
        }
    
        @Override
        public int getIconHeight() {
            return this.height;
        }
    }
    
  • 图像标签

    package gui3;
    
    import javax.swing.*;
    import java.awt.*;
    import java.net.URL;
    
    public class iconDemo2 extends JFrame {
        public static void main(String[] args) {
            new iconDemo2();
        }
        public iconDemo2(){
            //获取图片地址
            URL url = iconDemo2.class.getResource("包机制.jpg");
            JLabel lable = new JLabel("图片标签");
    
            ImageIcon imageIcon = new ImageIcon(url);
            lable.setIcon(imageIcon);
            lable.setHorizontalAlignment(SwingConstants.CENTER);
    
            Container container = getContentPane();
            container.add(lable);
    
            this.setVisible(true);
            this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        }
    }
    

10.2、面板

JPannel

package gui3;

import javax.swing.*;
import java.awt.*;

public class jPanel extends JFrame {
    public static void main(String[] args) {
        new jPanel();
    }
    public jPanel(){
        Container container = getContentPane();
        container.setLayout(new GridLayout(2,1,10,10));//后面的参数是每个面板之间的间距

        JPanel jp = new JPanel(new GridLayout(1,3));

        jp.add(new JButton("1"));
        jp.add(new JButton("2"));
        jp.add(new JButton("3"));

        container.add(jp);
        this.setVisible(true);
        this.setSize(500,500);
        this.setDefaultCloseOperation(SwingConstants.CENTER);
    }
}

JScrollPanel-滚动面板

package gui3;

import javax.swing.*;
import java.awt.*;

public class jScrollPanel extends JFrame {
    public static void main(String[] args) {
        new jScrollPanel();
    }
    public jScrollPanel(){
        Container container = getContentPane();

        //文本域
        JTextArea textArea = new JTextArea(20, 50);
        textArea.setText("小胖世界第一");

        //Scroll面板
        JScrollPane scrollPane = new JScrollPane(textArea);
        container.add(scrollPane);

        this.setVisible(true);
        this.setBounds(200,200,300,300);//小于边框的尺寸,出现滚动条
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
}

10.3、图片按钮,单选框,多选框

  • 图片按钮

    package gui3;
    
    import javax.swing.*;
    import java.awt.*;
    import java.net.URL;
    
    public class jButton extends JFrame {
        public static void main(String[] args) {
            new jButton();
        }
        public jButton(){
            Container container = getContentPane();
            //将一个图片变成图标
            URL ulr = jButton.class.getResource("包机制.jpg");
            ImageIcon icon = new ImageIcon(ulr);
    
            //把这个图标放在按钮上
            JButton button = new JButton();
            button.setIcon(icon);
            button.setToolTipText("图片按钮");
    
            //add
            container.add(button);
    
            this.setVisible(true);
            this.setSize(500,500);
            this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        }
    }
    
    
  • 单选框

    package gui3;
    
    
    import javax.swing.*;
    import java.awt.*;
    import java.net.URL;
    
    public class jButton2 extends JFrame {
        public static void main(String[] args) {
            new jButton2();
        }
        public jButton2(){
            Container container = getContentPane();
            //将一个图片变成图标
            URL ulr = jButton.class.getResource("包机制.jpg");
            ImageIcon icon = new ImageIcon(ulr);
    
            //单选框
            JRadioButton radioButton1 = new JRadioButton("JRadioButton1");
            JRadioButton radioButton2 = new JRadioButton("JRadioButton2");
            JRadioButton radioButton3 = new JRadioButton("JRadioButton3");
    
            //由于单选框只能选择一个,分组实现,一个组中只能选择一个
            ButtonGroup group = new ButtonGroup();
            group.add(radioButton1);
            group.add(radioButton2);
            group.add(radioButton3);
    
            //add
            container.add(radioButton1,BorderLayout.WEST);
            container.add(radioButton2,BorderLayout.EAST);
            container.add(radioButton3,BorderLayout.CENTER);
    
            this.setVisible(true);
            this.setSize(500,500);
            this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        }
    }
    
  • 多选框

    package gui3;
    
    
    import javax.swing.*;
    import java.awt.*;
    import java.net.URL;
    
    public class jButton3 extends JFrame {
        public static void main(String[] args) {
            new jButton3();
        }
        public jButton3(){
            Container container = getContentPane();
            //将一个图片变成图标
            URL ulr = jButton.class.getResource("包机制.jpg");
            ImageIcon icon = new ImageIcon(ulr);
    
            //多单选框
            JCheckBox checkBox1 = new JCheckBox("1");
            JCheckBox checkBox2 = new JCheckBox("2");
    
            container.add(checkBox1,BorderLayout.EAST);
            container.add(checkBox2,BorderLayout.WEST);
    
            this.setVisible(true);
            this.setSize(500,500);
            this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        }
    }
    

10.4、下拉框、列表框

  • 下拉框

    选择地区或者一些单个选项选型

    package gui3;
    
    import javax.swing.*;
    import java.awt.*;
    
    public class testCombobox extends JFrame {
        public static void main(String[] args) {
            new testCombobox();
        }
        public testCombobox() {
            Container container = getContentPane();
    
            JComboBox comboBox = new JComboBox();
            comboBox.addItem("正在上映");
            comboBox.addItem("已下架");
            comboBox.addItem("即将上映");
    
            container.add(comboBox);
    
            this.setVisible(true);
            this.setSize(500,500);
            this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        }
    }
    
  • 列表框

    展示信息,一般是动态扩容

    package gui3;
    
    import javax.swing.*;
    import java.awt.*;
    
    public class testCombobox2 extends JFrame{
        public static void main(String[] args) {
            new testCombobox2();
        }
        public testCombobox2() {
            Container container = getContentPane();
            //生成列表内容
            String[] contents = {"1","2","3"};
            //列表中需要放内容
            JList list = new JList(contents);
    
            container.add(list);
    
            this.setVisible(true);
            this.setSize(500,500);
            this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        }
    }
    

10.5、文本框、密码框、文本域

  • 文本框

    package gui3;
    
    import javax.swing.*;
    import java.awt.*;
    
    public class testText extends JFrame{
        public static void main(String[] args) {
            new testText();
        }
        public testText() {
            Container container = getContentPane();
    
            JTextField text1 = new JTextField("Hello");
            JTextField text2 = new JTextField("World",20);
    
            container.add(text1,BorderLayout.WEST);
            container.add(text2,BorderLayout.EAST);
    
            this.setVisible(true);
            this.setSize(500,500);
            this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        }
    }
    
    
  • 密码框

    package gui3;
    
    import javax.swing.*;
    import java.awt.*;
    
    public class testText2 extends JFrame{
        public static void main(String[] args) {
            new testText2();
        }
        public testText2() {
            Container container = getContentPane();
    
            //在面板中
            JPasswordField pass = new JPasswordField();//默认就是****
            pass.setEchoChar('*');
    
            container.add(pass);
    
            this.setVisible(true);
            this.setSize(500,500);
            this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        }
    }
    
  • 文本域

    package gui3;
    
    import javax.swing.*;
    import java.awt.*;
    
    public class jScrollPanel extends JFrame {
        public static void main(String[] args) {
            new jScrollPanel();
        }
        public jScrollPanel(){
            Container container = getContentPane();
    
            //文本域(配合面板使用)
            JTextArea textArea = new JTextArea(20, 50);
            textArea.setText("小胖世界第一");
    
            //Scroll面板
            JScrollPane scrollPane = new JScrollPane(textArea);
            container.add(scrollPane);
    
            this.setVisible(true);
            this.setBounds(200,200,300,300);//小于边框的尺寸,出现滚动条
            this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        }
    }
    

标签:java,GUI,编程,class,process4,add,new,import,public
From: https://www.cnblogs.com/moulixu/p/18355611

相关文章

  • 指针4.指针变量(附编程习题)
    今天来归纳一下指针变量,及了解typedef关键字和二维数组传参本质目录1.字符指针变量2.数组指针变量2.1概念2.2数组指针初始化3.函数指针变量4.函数指针数组5.二维数组传参6.typedef练习1.计算器的一般实现代码运行结果2.找单身狗2代码3.获得月份天数代码运行结果......
  • 重头开始嵌入式第十八天(Linux系统编程 文件IO)
    Linux系统编程内容Linux系统编程涵盖了众多方面的知识和技术: 1. 文件I/O操作:包括打开、读取、写入、关闭文件,以及处理文件的权限、属性等。2. 进程管理:创建新进程、进程的终止、等待进程结束、进程的执行状态控制等。3. 信号处理:接收和处理系统发送的各种信号,以响......
  • 网络编程学习总结
    Java网络编程学习总结本章目标了解计算机网络基础知识了解OSI七层参考模型熟悉TCP/IP协议熟悉常见网络协议掌握socket套接字编程计算机网络什么是计算机网络计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共......
  • 掌握JavaScript中的观察者模式:构建响应式编程的基石
    标题:掌握JavaScript中的观察者模式:构建响应式编程的基石在软件开发中,设计模式是解决特定问题的模板。其中,观察者模式是一种非常重要的设计模式,它允许多个对象监听另一个对象的状态变化,并在该对象状态变化时得到通知。这种模式在JavaScript中尤为有用,尤其是在构建响应式应用......
  • 腾讯云AI代码助手 —— 编程新体验,智能编码新纪元
    阅读导航引言一、开发环境介绍1.支持的编程语言2.支持的集成开发环境(IDE)二、腾讯云AI代码助手使用实例1.开发环境配置2.代码补全功能使用......
  • GUI推送安装报错:cannot create regular file
    EnvironmentDataProtector10.60RedHatEnterpriseLinux8.3 SituationThefollowingerrorisreportedwhentheAddclientsisperformedontheDPGUI. [Critical]<Client-hostname>Certificatecopyfailed:cp:cannotcreateregularfile'/etc......
  • 编程题之Daily Temperatures
    LeetCode原题地址https://leetcode.com/problems/daily-temperatures/题目介绍Givenanarrayofintegerstemperaturesrepresentsthedailytemperatures,returnanarrayanswersuchthatanswer[i]isthenumberofdaysyouhavetowaitaftertheithdaytogeta......
  • 这年头,程序员开始卷AI编程了?
    在AI技术飞速发展的背景下,相信大家都有目共睹,各种AI技术的普及让很多复杂的工作变得简单高效,如大语言模型和AI绘画、AI视频等,但是目前最吸引我的莫过于“AI代码生成”。在过去,每次有新技术出现时,我们都需要花大量时间去学习,比如一门新的语言,即便是资深的程序员至少要了解其......
  • 关于异步编程和多线程的高级.NET Core面试题
    以下是一些关于异步编程和多线程的高级.NETCore面试题。这些问题涵盖了从基础概念到复杂应用的各个方面,可以帮助评估候选人在异步编程和多线程开发方面的能力。1.异步编程基础在.NETCore中,异步编程的基本原理是什么?async和await关键字的作用是什么?如何在.NETCore中使用......
  • Linux系统编程、网络编程
    Linux系统编程、网络编程前言一、进程的退出正常退出异常退出父进程等待子进程退出为什么要等待子进程退出二、消息队列消息队列操作:形象举例:疑惑点疑惑点一三、信号疑惑点1.signal函数的原型:四、线程疑惑点1.线程的创建1.1intpthread_create函数每个参数的含义......