Java+swing을 사용하여 Douyin에 고백 프로그램을 구현하는 방법
1.准备工作
a.需要下载一个带着swing插件的eclipse
b.需要配置好JDK
c.创建一个JFrame的项目(如下图所示的步骤)
d.把资源文件放入与src所在的那个目录
步骤如下:
1.先复制资源文件
2.粘贴文件
3.把jar文件放入Referenced Libraries文件夹下
这第3步的具体操作如何所示
那么如何判断添加是否成功呢?
解答:看Referenced Libraries下面是否出现了刚刚build path的
两个文件,若出现了,则代表添加成功(成功的视图如下所示:)
e.design界面和source界面主要是干嘛的?
source界面用于写源代码,主要是用于写触发按键某一事件,需要进行简单的逻辑判断
design界面是通过可视化界面来帮我们进行界面的基本设计,直接拖拽即可,不用书写那些定义、基本属性的赋值这类的java代码了
2.界面窗体的设计与实现
整体的按钮的布局应该如下图所示
实现过程如下:
a.对窗体进行操作
//设置窗体关闭模式 exit-退出程序 do_nothing退出没有任何操作 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗体的大小和坐标 x y 宽度 高度 setBounds(100, 100, 584, 439); //居中显示 setLocationRelativeTo(null); //设置窗体不可拖拽 setResizable(false); //设置窗体的图标 setIconImage(new ImageIcon("love.png").getImage());
b.在design界面.根据刚刚的布局分布图,把按键移动到合适位置
c.把gif图片设置为相应为相应按钮的图标
lblNewLabel.setIcon(newImageIcon("E:\\Ueclipseworkspace\\love\\gfriend.gif"));
d.对剩下的组件进行颜色的设置
//以button按钮为例,进行颜色的设置 //setforeground是设置控件里面的字体颜色 btnNewButton.setForeground(Color.WHITE); //setbackground是设置控件里面的背景颜色 btnNewButton.setBackground(Color.PINK); //setforeground是设置控件里面字体类型以及字体大小 btnNewButton.setFont(new Font("微软雅黑", Font.BOLD, 15));
3.对按钮加上监听事件
3.1 对"好的"这个按钮加上鼠标点击事件
3.1.1 在design界面对"好的"按钮添加鼠标点击事件
3.1.2 跳转到resource界面后,对鼠标点击事件加上具体操作
//鼠标点击后就会弹出提示 FrameUtil.msg("好的,老婆我就知道你会同意的"); //结束程序 System.exit(0);
3.2 对"滚"这个按钮加上鼠标进入事件
3.2.1 在design界面对"滚"按钮添加鼠标进入事件
3.2.2 跳转到resource界面后,对鼠标进入事件加上具体操作
//弹出信息框,不断的挽留,不允许它退出程序 FrameUtil.msg("老婆大人,原谅我好吗?"); FrameUtil.msg("我错了,再也不敢把钱不上交了");
3.3 对"滚"这个按钮加上鼠标点击事件(点中随机位置了)
3.3.1 在design界面对"滚"按钮添加鼠标点击事件
3.3.2 跳转到resource界面后,对鼠标点击事件加上具体操作
//当用户点击到滚按钮的随机位置时,也要进行一波挽留操作,不允许拒绝 //弹窗弹出挽留语句 FrameUtil.msg("老婆大人,原谅我好吗?"); FrameUtil.msg("我错了,再也不敢把钱不上交了");
4.设置滚按钮的层级为最上面
无论怎么移动,都是最上层
5.为界面添加一首背景音乐
//前提:需要把他人写好的资源包build path到自己的项目中 //需要在窗体可见之前进行设置 FrameUtil.playMusic("嫁给我.mp3"); //当这首歌的路径和src文件夹同级别时,这样写就可以了 //这个放的位置在方法体外面
6.源代码
package demo; import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import com.frame.util.FrameUtil; import javax.swing.JLabel; import javax.swing.ImageIcon; import java.awt.Color; import java.awt.Font; import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.Random; public class Love extends JFrame { private JPanel contentPane; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { Love frame = new Love(); //设置窗体不可见 // FrameUtil.playMusic("嫁给我.mp3"); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); FrameUtil.playMusic("嫁给我.mp3"); } /** * Create the frame. */ public Love() { //设置窗体的大小 setTitle("\u9ED1\u51E4\u68A8"); //设置窗体关闭模式 exit-退出程序 do_nothing退出没有任何操作 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗体的大小和坐标 x y 宽度 高度 setBounds(100, 100, 584, 439); //剧中显示 setLocationRelativeTo(null); //设置窗体不可拖拽 setResizable(false); //设置窗体的图标 setIconImage(new ImageIcon("love.png").getImage()); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); JButton button = new JButton("\u6EDA"); button.setForeground(Color.WHITE); button.setFont(new Font("微软雅黑", Font.BOLD, 15)); button.setBackground(Color.PINK); button.setBounds(396, 273, 113, 27); button.addMouseListener(new MouseAdapter() { @Override public void mouseEntered(MouseEvent arg0) { Random random=new Random(); int x=random.nextInt(480); int y=random.nextInt(380); button.setBounds(x, y, 113, 27); } @Override public void mouseClicked(MouseEvent e) { FrameUtil.msg("老婆大人,原谅我好吗?"); FrameUtil.msg("我错了,再也不敢把钱不上交了"); } }); contentPane.add(button); JLabel lblNewLabel = new JLabel("New label"); lblNewLabel.setIcon(new ImageIcon("E:\\Ueclipse-workspace\\love\\gfriend.gif")); lblNewLabel.setBounds(14, 40, 200, 200); contentPane.add(lblNewLabel); JLabel lblNewLabel_1 = new JLabel("\u5C0F\u59D0\u59D0\u6211\u559C\u6B22\u4F60\u5F88\u4E45\u4E86"); lblNewLabel_1.setFont(new Font("微软雅黑", Font.BOLD, 20)); lblNewLabel_1.setForeground(Color.PINK); lblNewLabel_1.setBounds(269, 57, 219, 73); contentPane.add(lblNewLabel_1); JLabel label = new JLabel("\u505A\u6211\u5973\u670B\u53CB\u597D\u5417?"); label.setForeground(Color.RED); label.setFont(new Font("微软雅黑", Font.BOLD, 20)); label.setBounds(269, 167, 219, 73); contentPane.add(label); JButton btnNewButton = new JButton("\u597D\u7684"); btnNewButton.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg0) { //JOptionPane.showMessageDialog(null,"我的"); FrameUtil.msg("好的,老婆我就知道你会同意的"); System.exit(0); } }); btnNewButton.setForeground(Color.WHITE); btnNewButton.setBackground(Color.PINK); btnNewButton.setFont(new Font("微软雅黑", Font.BOLD, 15)); btnNewButton.setBounds(254, 272, 113, 27); contentPane.add(btnNewButton); } }
위 내용은 Java+swing을 사용하여 Douyin에 고백 프로그램을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

@serverendpoint를 사용하여 경로를 정의하고 @onopen, @onmessage, @onclose 및 @onerror를 통해 연결, 메시지 수신, 닫기 및 오류를 처리하기 위해 WebSocket 서버 엔드 포인트를 작성하십시오. 2. 배포 중에 Javax.websocket-API 종속성이 도입되어 컨테이너에 의해 자동으로 등록되어 있는지 확인하십시오. 3. Java 클라이언트는 ContainerProvider를 통해 WebSocketContainer를 얻고 ConnectToServer를 호출하여 서버에 연결하고 @ClientendPoint 주석 클래스를 사용하여 메시지를 수신합니다. 4. 세션 getbasicre를 사용하십시오

로그백 또는 log4J2와 결합 된 SLF4J를 사용하는 것은 Java 응용 프로그램에서 로그를 구성하는 권장 방법입니다. 해당 Maven 의존성을 추가하여 API 및 구현 라이브러리를 소개합니다. 2. 코드에서 SLF4J의 LoggerFactory를 통해 로거를 가져오고 매개 변수화 된 로깅 방법을 사용하여 분리되고 효율적인 로그 코드를 작성하십시오. 3. 로그 출력 형식, 레벨, 대상 (콘솔, 파일) 및 패키지 레벨 로그 컨트롤을 logback.xml 또는 log4j2.xml 구성 파일을 정의합니다. 4. 선택적으로 구성 파일 스캔 기능을 활성화하여 로그 레벨의 동적 조정을 달성하고 SpringBoot도 액추에이터 엔드 포인트를 통해 관리 할 수도 있습니다. 5. 모범 사례를 포함하여

repay yourApplicationBenorgradletobuildajarorwarfile, 외부화 공기

castorenablesxml-to-javaobjectmappingViAdventionSorxclationSpollicitMappingFiles; 1) definejavaclasseswithgetters/setters; 2) useUnmarshallertoconvertxmltoobjects; 3) USEMARSHALLERTOSERIAZEOBJECTSBACKTOXML;

phpmyadmin을 효과적으로 보호하려면 여러 계층의 보안 조치를 취해야합니다. 1. IP를 통한 액세스 제한, 신뢰할 수있는 IP 연결 만 허용됩니다. 2. 기본 URL 경로를 추측하기 쉽지 않은 이름으로 수정하십시오. 3. 강력한 비밀번호를 사용하고 최소화 된 권한을 가진 전용 MySQL 사용자를 만듭니다. 2 단계 인증을 활성화하는 것이 좋습니다. 4. Phpmyadmin 버전을 유지하여 알려진 취약점을 수정하십시오. 5. 웹 서버 및 PHP 구성을 강화하고 위험한 기능을 비활성화하며 파일 실행을 제한합니다. 6. 자격 증명 누출을 방지하기 위해 HTTPS가 통신을 암호화하도록 강제; 7. 사용하지 않을 때 phpmyadmin을 비활성화하거나 HTTP 기본 인증을 증가시킵니다. 8. 정기적으로 로그를 모니터링하고 FAIL2BAN을 구성하여 무차별 힘 균열을 방어합니다. 9. 설정 삭제 및

"EnableFillHandleAndCellDrag and-Drop"Infile> 옵션> 고급; 2.CorrectLySmallSquareattheBottom-righteSelectedCell-THEBLACKPLUSTOROR, NOTTHEWHITERROW;
![현재 NVIDIA GPU에 첨부 된 디스플레이를 사용하고 있지 않습니다 [고정].](https://img.php.cn/upload/article/001/431/639/175553352135306.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
ifyousee "YourEnotusingAdisplayAttachedToannvidiagpu,"YourMonitorIsConnectedTothenVidiagpupport, configuredisplaysettingsinnvidiacontrolpanel, updatedRiversUsingDduandcleanInstall, 및 setTheprestOdcreteinbios/uefi

theassertkeywordinjavaisubseedtovalidateassumptions developments.2
