请教一个java GUI的问题,十分感谢!
我写了一个 Java程序。
Demo10 启动后,跟踪用户按键事件,如果有按下F3,则调用 GlobalVari_5.
问题是:在 Demo10启动的时候,GlobalVari_5 对应的 JFrame会闪现一下,然后消失。
请问,应该怎么修改下,可以使得在 Demo10启动的时候, GlobalVari_5 对应的 JFrame不要闪现。
PS:我试着把 GlobalVari_5.java里的 this.setVisible(true); 改成 this.setVisible(false);
这样后,在 Demo10启动的时候, GlobalVari_5 对应的 JFrame确实没有闪现,但是用户按下 F3后,
GlobalVari_5 对应的 JFrame里的右边的 JPane不见了...
请达人帮我看看是啥情况。十分感谢!
Demo10.java
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.*;
public class Demo10 extends JFrame implements KeyListener{
/**
*
*/
private static final long serialVersionUID = 1L;
GlobalVari_5 gv = new GlobalVari_5();
public Demo10(){
this.setTitle("键盘事件处理");
this.setSize(300, 200);
this.setLocationRelativeTo(this);// 窗口居中
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 窗口关闭动作处理
this.addKeyListener(this);// 添加注册键盘事件监听器
this.gv.setVisible(false);
}
@Override
public void keyPressed(KeyEvent arg0){// 敲击
}
@Override
public void keyReleased(KeyEvent arg0) {// 按下
if (arg0.getKeyCode() == 114) {// 114 F3对应的编码
Demo10.print();
gv.setVisible(true);
}
}
@Override
public void keyTyped(KeyEvent arg0) {// 释放
}
public static void main(String[] args) {
new Demo10();
}
public static void print() {
System.out.println("Running!");
}
}GlobalVari_5.java
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
public class GlobalVari_5 extends JFrame{
private static final long serialVersionUID = 1L;
private static double select = 0;
private static int rowIndex = 0;
// /表格方法使用
public GlobalVari_5(){
init();
this.setTitle("Global Variables");
this.setSize(new Dimension(650, 400));
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setVisible(true);
this.setLayout(null);
this.setResizable(false);
}
private void init(){
Vector<String> colHeader = new Vector<String>();
colHeader.add("Variable");
colHeader.add("Value");
colHeader.add("Time");
Vector<Vector<String>> dataVec = new Vector<Vector<String>>();
final JTable table = new JTable(dataVec,colHeader){
private static final long serialVersionUID = 1L;
public boolean isCellEditable(int row, int column){
if(column > 1){
return false;
} else {
return true;
}
}
};
//2设置表头行高
table.getTableHeader().setPreferredSize(new Dimension(0,30));
//3设置表内容行高
table.setRowHeight(25);
//4设置单选模式
table.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//5设置单元格不可拖动
table.getTableHeader().setReorderingAllowed(false);
//6设置不可改变列宽
table.getTableHeader().setResizingAllowed(false);
//7设置列宽
table.getColumnModel().getColumn(0).setPreferredWidth(95);
table.getColumnModel().getColumn(1).setPreferredWidth(55);
table.getColumnModel().getColumn(2).setPreferredWidth(30);
//注意索引越界
DefaultTableCellRenderer right = new DefaultTableCellRenderer();
right.setHorizontalAlignment(JLabel.RIGHT);
table.getColumnModel().getColumn(1).setCellRenderer(right);
table.getColumnModel().getColumn(2).setCellRenderer(right);
final JButton buttonAdd = new JButton("Add");
final JButton buttonDel = new JButton("Delete");
final JButton buttonCls = new JButton("Close");
rowIndex = table.getSelectedRow();
System.out.println("index:"+rowIndex);
//监听事件
table.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e){
if(e.getValueIsAdjusting()){//连续操作
rowIndex = table.getSelectedRow();
if(rowIndex != -1){
System.out.println("表格行被选中"+rowIndex);
buttonDel.setEnabled(true);
select = 1;
}
}
}
});
JScrollPane scrollPane = new JScrollPane();
scrollPane.setViewportView(table);
this.add(scrollPane);
scrollPane.setSize(515, 350);
scrollPane.setLocation(5, 5);
buttonAdd.setEnabled(true);
buttonDel.setEnabled(false);
buttonCls.setEnabled(true);
JPanel panel = new JPanel();
panel.setSize(10, 350);
panel.setLocation(520, 5);
this.add(panel);
panel.setLayout(null);
panel.add(buttonAdd);
buttonAdd.setSize(100, 30);
buttonAdd.setLocation(530, 6);
panel.add(buttonDel);
buttonDel.setSize(100, 30);
buttonDel.setLocation(530, 50);
panel.add(buttonCls);
buttonCls.setSize(100, 30);
buttonCls.setLocation(530, 322);
buttonAdd.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e){
DefaultTableModel model = (DefaultTableModel)table.getModel();
int rownum = table.getRowCount() + 1;
model.addRow(new Object[]{"gvar" + rownum, "", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())});
}
public void mousePressed(MouseEvent e){
}
public void mouseReleased(MouseEvent e){
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
});
buttonDel.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e){
if(select == 1){
DefaultTableModel model = (DefaultTableModel)table.getModel();
model.removeRow(rowIndex);
select = 0;
buttonDel.setEnabled(false);
}
}
public void mousePressed(MouseEvent e){
}
public void mouseReleased(MouseEvent e){
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
});
buttonCls.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e){
setVisible(false);
}
public void mousePressed(MouseEvent e){
}
public void mouseReleased(MouseEvent e){
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
});
}
public static void main(String[] args){
new GlobalVari_5();
}
}
相关推荐
最简单的java GUI
写在前面 所谓大道至简,我在这个博客里记录下来的都是最平凡最简单的程序,但是我想简单之物也有着不平凡的精彩,有着不简单的深刻。因为简单的同时它能够保持完整,证明了它的结构是完善的,是清晰的,是可以扩展和自由发挥的。因此,我们本篇来介绍一个最简单的java GUI程序。1.GUI的制作步骤:(1)创造一个Frame框架(JFrame):JFrame frame = new JFrame();(2)制
正交拉丁超立方(OLHC)分组与实验设计(DOE)评估的优化Python实现.rar
正交拉丁超立方(OLHC)分组与实验设计(DOE)评估的优化Python实现.rar
Java微服务如何拆解审计日志查询服务
标题:Java微服务如何拆解审计日志查询服务 内容概要:围绕缓存策略、任务调度、回压控制和审计追踪,拆解Java微服务如何拆解审计日志查询服务的实现细节。 xdronline.com xdrea.com 9g.xinmei6.com xinghaohuanbao.com m.xiker66.com
港股十档行情tick数据涵盖逐笔成交与委托,记录每笔买卖价格、成交量及挂单明细 逐笔数据包含成交时间、价格、股数、成交方向,委托数据展示买一至买十、卖一至卖十的价格与数量
港股十档行情tick数据涵盖逐笔成交与委托,记录每笔买卖价格、成交量及挂单明细。逐笔数据包含成交时间、价格、股数、成交方向,委托数据展示买一至买十、卖一至卖十的价格与数量。分钟数据汇总每分钟开盘价、最高价、最低价、收盘价、成交量及成交额。历史行情覆盖近十五年,字段清晰完整,便于回溯分析。 数据源:CMES金融数据库
MO-372A_PQFP-F6_I1p27-R3p8x4p48Z1p1-N5p5C1p24.stp
MO-372A_PQFP-F6_I1p27-R3p8x4p48Z1p1-N5p5C1p24.stp


Java SE
