java frame button_java – 从Button打开一个新的JFrame
我想通过单击按钮(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相关推荐
- wxpython窗口跳转_WxPython-用按钮打开一个新窗口
我正在创建一个界面,我需要打开一个新的窗口,点击一个按钮. 所以我创建了主窗口,创建了所有按钮,并在一个类下创建了新窗口.我不完全确定是否需要,但我也会包括这一部分信息.对python来说是新的,如果 ...
- window.open html打开一个新页面
<html><head><meta charset="utf-8"><title>打开一个新页面</title>< ...
- Oracle VM VirtualBox启动新建虚拟机弹错--不能为虚拟机xxxx电脑 打开一个新任务 解决方法;
Oracle VM VirtualBox启动新建虚拟机弹错--不能为虚拟机xxxx电脑 打开一个新任务 解决方法: 参考文章: (1)Oracle VM VirtualBox启动新建虚拟机弹错--不能 ...
- [Issue Fixed]-不能为虚拟电脑xxx打开一个新任务
使用window host + virtualbox + ubuntu vm的时候,有时候window突然断电关机了.此时重启window电脑后,再次使用virtualbox打开ubuntu vm时, ...
- 在主窗体中打开一个新子窗体,如果已有子窗体,则激活它,而不打开新的。...
frmGroupMgr fgm = null; //遍历窗体中是否已存在同名的子窗体 foreach (Form f in this.MdiChildren) { //检测是不是当前子窗体名称 if ...
- 不能为虚拟电脑 ubuntu 打开一个新任务的解决办法
使用virtualbox报错: 不能为虚拟电脑 ubuntu3 打开一个新任务. The virtual machine 'ubuntu3' has terminated unexpectedly d ...
- VirtualBox 4.3“不能为虚拟电脑 打开一个新任务”解决方案 - 转
VirtualBox 4.3"不能为虚拟电脑 打开一个新任务"解决方案 - 转 参考文章: (1)VirtualBox 4.3"不能为虚拟电脑 打开一个新任务" ...
- VirtualBox报错:不能为虚拟电脑XXX打开一个新任务
(找了好久,CSDN里大佬写的看不懂:因为已经解决了,报错图片来自百度贴吧:新人小白的第一篇文章,如有错误,请及时指出) 系统:win10 问题描述: 初始报错: VirtualBox – Error ...
- vue项目点击左侧子菜单,打开一个新的浏览器标签页
在项目开发中,产品给了这样一个需求:点击左侧子菜单,在浏览器中打开一个新的标签页,展示数据大屏.在此写个随笔记录下实现过程. 思路:使用编程式导航 实现页面跳转,我们常用的是 $router.push ...
最新文章
- 详解Tomcat配置JVM参数步骤
- 神策数据徐美玲:数字化运营,从 1 到 100 的跨越
- 青岛农业大学第九届ACM程序设计竞赛
- SpringBoot三种获取Request和Response的方法
- 判断元素(expected_conditions)
- linux 卸载nfs device is busy,umount.nfs: device is busy解决办法
- js加载音频文件并播放,代码实例
- 【报告分享】2021年社区团购研究报告.pdf(附下载链接)
- Android虚拟键盘上下左右键按下和弹起的响应事件
- RS485芯片/RS485通讯芯片/RS485通讯接口芯片UN3485
- 中国历史37位奇女子
- layabox学习(一)·helloworld以及自定义路径
- 大学英语综合教程三 Unit 4 课文内容英译中 中英翻译
- 卧龙图说酒:喝酒的人生,是有意义的人生!
- Google-APAC2015-Password Attacker
- Java小游戏实操---大鱼吃小鱼 游戏开发
- docker安装linux-ubuntu桌面环境
- 恶心的英特尔的RST驱动
- 倭黑猩猩机器人_难以置信!倭黑猩猩竟也有助产“护士”
- 聚类算法——python实现SOM算法