我想通过单击按钮(btnAdd)打开一个新的JFrame;我试图创建一个actionlistener,但我没有运气;代码运行但单击按钮时没有任何反应.有问题的方法是以下代码中的最后两个.任何帮助深表感谢!

package AdvancedWeatherApp;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Component;

import java.awt.Container;

import java.awt.Dimension;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.BoxLayout;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.SwingConstants;

import javax.swing.event.ListSelectionListener;

import weatherforecast.FetchWeatherForecast;

public class MainFrame extends JFrame implements ListSelectionListener {

private boolean initialized = false;

private Actions actions = new Actions();

private javax.swing.JScrollPane jspFavouritesList = new javax.swing.JScrollPane();

private javax.swing.DefaultListModel listModel = new javax.swing.DefaultListModel();

private javax.swing.JList favouritesList = new javax.swing.JList(

listModel);

private javax.swing.JLabel lblAcknowledgement = new javax.swing.JLabel();

private javax.swing.JLabel lblTitle = new javax.swing.JLabel();

private javax.swing.JButton btnAdd = new javax.swing.JButton();

private javax.swing.JButton btnRemove = new javax.swing.JButton();

public void initialize() {

initializeGui();

initializeEvents();

this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

}

/**

*

*/

private void initializeGui() {

if (initialized)

return;

initialized = true;

this.setSize(500, 400);

Dimension windowSize = this.getSize();

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

this.setLocation(screenSize.width / 2 - windowSize.width / 2,

screenSize.height / 2 - windowSize.height / 2);

Container pane = this.getContentPane();

pane.setLayout(new BorderLayout());

setLayout(new BorderLayout());

setTitle("Favourite Weather Locations");

JPanel jpSouth = new JPanel();

jpSouth.setLayout(new FlowLayout());

JPanel jpNorth = new JPanel();

jpNorth.setLayout(new FlowLayout());

JPanel jpCenter = new JPanel();

jpCenter.setLayout(new BoxLayout(jpCenter, BoxLayout.PAGE_AXIS));

JPanel jpEast = new JPanel();

JPanel jpWest = new JPanel();

getContentPane().setBackground(Color.WHITE);

jpEast.setBackground(Color.WHITE);

jpWest.setBackground(Color.WHITE);

jpCenter.setBackground(Color.WHITE);

getContentPane().add(jspFavouritesList);

jpCenter.add(jspFavouritesList);

jspFavouritesList.setViewportView(favouritesList);

favouritesList

.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);

favouritesList.addListSelectionListener(this);

jpCenter.add(btnAdd);

jpCenter.add(btnRemove);

jpCenter.setAlignmentY(CENTER_ALIGNMENT);

btnAdd.setText("Add Location");

btnAdd.setAlignmentX(Component.CENTER_ALIGNMENT);

btnAdd.setFont(new Font("Calibri", Font.PLAIN, 18));

jpCenter.add(btnRemove);

btnRemove.setText("Remove Location");

btnRemove.setAlignmentX(Component.CENTER_ALIGNMENT);

btnRemove.setFont(new Font("Calibri", Font.PLAIN, 18));

getContentPane().add(jpEast, BorderLayout.EAST);

getContentPane().add(jpWest, BorderLayout.WEST);

getContentPane().add(jpSouth);

jpSouth.add(lblAcknowledgement);

add(lblAcknowledgement, BorderLayout.SOUTH);

lblAcknowledgement.setText(FetchWeatherForecast.getAcknowledgement());

lblAcknowledgement.setHorizontalAlignment(SwingConstants.CENTER);

lblAcknowledgement.setFont(new Font("Tahoma", Font.ITALIC, 12));

getContentPane().add(jpNorth);

jpNorth.add(lblTitle);

add(lblTitle, BorderLayout.NORTH);

lblTitle.setText("Your Favourite Locations");

lblTitle.setHorizontalAlignment(SwingConstants.CENTER);

lblTitle.setFont(new Font("Calibri", Font.PLAIN, 32));

lblTitle.setForeground(Color.DARK_GRAY);

getContentPane().add(jpCenter);

}

private void initializeEvents() {

// TODO: Add action listeners, etc

}

public class Actions implements ActionListener {

public void actionPerformed(ActionEvent e) {

String command = e.getActionCommand();

command = command == null ? "" : command;

// TODO: add if...if else... for action commands

}

}

public void dispose() {

// TODO: Save settings

// super.dispose();

System.exit(0);

}

public void setVisible(boolean b) {

initialize();

super.setVisible(b);

}

public static void main(String[] args) {

new MainFrame().setVisible(true);

}

public void actionPerformed(ActionEvent evt){

if (evt.getSource() == btnAdd) {

showNewFrame();

//OPEN THE SEARCH WINDOW

}

}

private void showNewFrame() {

JFrame frame = new JFrame("Search Window" );

frame.setSize( 500,120 );

frame.setLocationRelativeTo( null );

frame.setVisible( true );

}

}

java frame button_java – 从Button打开一个新的JFrame相关推荐

  1. wxpython窗口跳转_WxPython-用按钮打开一个新窗口

    我正在创建一个界面,我需要打开一个新的窗口,点击一个按钮. 所以我创建了主窗口,创建了所有按钮,并在一个类下创建了新窗口.我不完全确定是否需要,但我也会包括这一部分信息.对python来说是新的,如果 ...

  2. window.open html打开一个新页面

    <html><head><meta charset="utf-8"><title>打开一个新页面</title>< ...

  3. Oracle VM VirtualBox启动新建虚拟机弹错--不能为虚拟机xxxx电脑 打开一个新任务 解决方法;

    Oracle VM VirtualBox启动新建虚拟机弹错--不能为虚拟机xxxx电脑 打开一个新任务 解决方法: 参考文章: (1)Oracle VM VirtualBox启动新建虚拟机弹错--不能 ...

  4. [Issue Fixed]-不能为虚拟电脑xxx打开一个新任务

    使用window host + virtualbox + ubuntu vm的时候,有时候window突然断电关机了.此时重启window电脑后,再次使用virtualbox打开ubuntu vm时, ...

  5. 在主窗体中打开一个新子窗体,如果已有子窗体,则激活它,而不打开新的。...

    frmGroupMgr fgm = null; //遍历窗体中是否已存在同名的子窗体 foreach (Form f in this.MdiChildren) { //检测是不是当前子窗体名称 if ...

  6. 不能为虚拟电脑 ubuntu 打开一个新任务的解决办法

    使用virtualbox报错: 不能为虚拟电脑 ubuntu3 打开一个新任务. The virtual machine 'ubuntu3' has terminated unexpectedly d ...

  7. VirtualBox 4.3“不能为虚拟电脑 打开一个新任务”解决方案 - 转

    VirtualBox 4.3"不能为虚拟电脑 打开一个新任务"解决方案 - 转 参考文章: (1)VirtualBox 4.3"不能为虚拟电脑 打开一个新任务" ...

  8. VirtualBox报错:不能为虚拟电脑XXX打开一个新任务

    (找了好久,CSDN里大佬写的看不懂:因为已经解决了,报错图片来自百度贴吧:新人小白的第一篇文章,如有错误,请及时指出) 系统:win10 问题描述: 初始报错: VirtualBox – Error ...

  9. vue项目点击左侧子菜单,打开一个新的浏览器标签页

    在项目开发中,产品给了这样一个需求:点击左侧子菜单,在浏览器中打开一个新的标签页,展示数据大屏.在此写个随笔记录下实现过程. 思路:使用编程式导航 实现页面跳转,我们常用的是 $router.push ...

最新文章

  1. 详解Tomcat配置JVM参数步骤
  2. 神策数据徐美玲:数字化运营,从 1 到 100 的跨越
  3. 青岛农业大学第九届ACM程序设计竞赛
  4. SpringBoot三种获取Request和Response的方法
  5. 判断元素(expected_conditions)
  6. linux 卸载nfs device is busy,umount.nfs: device is busy解决办法
  7. js加载音频文件并播放,代码实例
  8. 【报告分享】2021年社区团购研究报告.pdf(附下载链接)
  9. Android虚拟键盘上下左右键按下和弹起的响应事件
  10. RS485芯片/RS485通讯芯片/RS485通讯接口芯片UN3485
  11. 中国历史37位奇女子
  12. layabox学习(一)·helloworld以及自定义路径
  13. 大学英语综合教程三 Unit 4 课文内容英译中 中英翻译
  14. 卧龙图说酒:喝酒的人生,是有意义的人生!
  15. Google-APAC2015-Password Attacker
  16. Java小游戏实操---大鱼吃小鱼 游戏开发
  17. docker安装linux-ubuntu桌面环境
  18. 恶心的英特尔的RST驱动
  19. 倭黑猩猩机器人_难以置信!倭黑猩猩竟也有助产“护士”
  20. 聚类算法——python实现SOM算法

热门文章

  1. 容器必须设置宽度吗_UI设计必须要具备的前端知识
  2. python第三方库文件传输_python3 post方式上传文件。
  3. svm涉及的一些概念
  4. Adobe Acrobat Reader快捷键
  5. python工具包_python 工具包
  6. java内部类文件,Java内部类学习
  7. 当前记录集不支持更新_微信现已正式支持修改微信号!微信7.0.16内测版更新(附下载)...
  8. Excel中文字换行
  9. javaweb-服务器输出字符数据到浏览器
  10. delphi设置鼠标图形