我正在制作一个带有数据库的服务器,但是当我正在加载主JFrame时,当我连接到数据库时,从.properties文件中读取用户名和密码,我选择让用户知道程序正在运行,该程序在特定时刻正在做什么,并且如果它不存在(首次启动),也让他创建一个.properties文件.问题是我需要创建2个jframe,1个显示启动进度,1个只在用户需要创建.properties文件时出现:问题是我必须在第二个运行时暂停第一个,并在第二个关闭时重新开始运行第一个执行所有操作; 我用两种方式制作它,但它不起作用:首先,我尝试插入一个wait()调用,打开第二个JFrame和一个notify()调用,同时关闭它; 第二,我尝试使用线程,但问题是我停止的线程不会启动它应该...这里是一些代码:
jFrame1.setBounds(0,0,500,500);
this.setVisible(true);
jProgressBar2.setValue(0);
prop = new Properties();
jTextArea1.setText(jTextArea1.getText()+"Searching file config.properties... \n");
try {
FileReader fr = new FileReader("config.properties");
jProgressBar2.setValue(33);
jLabel3.setText("33");
jTextArea1.setText(jTextArea1.getText()+"File config.properties found... \n");
} catch (FileNotFoundException ex) {
jFrame1.setVisible(true);
jTextArea1.setText(jTextArea1.getText()+"File config.properties not found... \n");
}
Run Code Online (Sandbox Code Playgroud)
当我进入"捕获"部分时我想暂停; "这个"是第一个JFrame,"jFrame1"是第二个.一些提示/提示?
两个JFrame,
JFrame Main; // Main JFrame
JFrame Sub; //Second JFrame that is initialized from within Main via a JMenuItems ActionListener.
mainMenuItem.setActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
try{
Sub subFrame = new Sub();
subFrame.setVisible(true);
}catch(Exception e){}
}
});
}
Run Code Online (Sandbox Code Playgroud)
问题是每当我关闭第二个JFrame(Sub)时它会关闭第一个JFrame(Sub).
两者JFrame都有:
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Run Code Online (Sandbox Code Playgroud)
这是问题的一部分吗?
我想知道是否有办法重用一个jframe而不是新的.你可能想知道为什么.我有两个JFrame(实际上更多,但为了这个问题的目的,两个).一个包含一个单选按钮(同意)与jtextarea中的条款和条件.其他JFrame包含passwordtxtarea(密码),jtextarea(用户名)和单选按钮(阅读条款和条件),以及"TermsAnd Conditions"按钮.我忘了提到第一个jtextarea包含一个"后退"jbutton,如果我按下,我得到JFrame2,当我按"条款和条件"时,我得到JFrame1.问题是,我的代码需要点击"同意"和"阅读条款"单选按钮,但每当我按"后退"或"条款和条件"时,我输入的任何输入(用户名,密码,点击默认值以外的单选按钮)将丢失.因此,我不能继续我的计划.
我认为这与我必须制作一个新的JFrame表格有关.也许它将它恢复到默认状态?无论如何,我该如何解决这个问题?我没有看到这样的问题,所以除了"这是不可能的"之外,还有一个我无法看到的明显答案吗?
我正在使用Java开发一个小游戏.我的应用程序有一个主JFrame,可以通过单击JButton创建另一个Window(游戏窗口).我已经单独测试了我的游戏窗口,一切都很好.
这是我的游戏窗口构造函数:
public GameWindow(final GameController controller)
{
super("Boulder Dash Game");
this.controller = controller;
this.controller.registerObserver(getCurrentFrame());
this.gamePanel = new GamePanel(controller);
this.frameWidth = controller.getColumns() * 16;
this.frameHeight = controller.getRows() * 16 + 76;
getContentPane().add(gamePanel, BorderLayout.CENTER);
setSize(frameWidth, frameHeight);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
controller.startGame();
}
Run Code Online (Sandbox Code Playgroud)
controller.startGame()方法启动游戏循环.当我直接从我的主要开始这个窗口时,游戏循环工作正常.
现在,我想从我的主框架启动这个GameWindow框架.这是我的主框架中的代码:
playButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(final @Nullable ActionEvent e)
{
String selectedItem = (String) levelsComboBox.getSelectedItem();
assert selectedItem != null;
controller.lauchGame(selectedItem);
}
});
Run Code Online (Sandbox Code Playgroud)
controller.launchGame(String selectedItem)是一种用于加载游戏关卡并启动游戏窗口的方法.这是代码
public void lauchGame(final String levelQueried)
{
assert levelQueried != null;
Level level = LevelRepository.load(levelQueried); …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用附加到每个按钮的图标来构建匹配游戏.虽然这还没有完成,但我在用按钮填充面板时遇到了问题.
使用此代码,我得到一个灰色的框架.如果我注释掉我在"// execution"下使用的3种方法,那么面板将全部为黑色(这就是我如何测试按钮是否填充空间.)
对于某些原因,我的按钮没有填充到面板上.
我需要一些帮助!!!我哪里错了?
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MemoryMainFrame extends JFrame implements ActionListener {
JButton button[] = new JButton[16];
private static final int SIXTEEN_BUTTONS = 16;
JPanel mainPanel = new JPanel();
double dim = Math.sqrt(SIXTEEN_BUTTONS);
int numOfColumns = (int) (dim);
int numOfRows = (int) (dim);
public static void main(String[] args) {
new MemoryMainFrame();
}
public MemoryMainFrame() {
this.setTitle("MemoryGame!!!");
this.setSize(400, 400);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true); …Run Code Online (Sandbox Code Playgroud) 我正在学习线程,但遇到了问题。我正在尝试制作 2 个框架,一个是主框架,另一个将在单击按钮后显示。我想在新框架运行时停止主框架。你们能帮我举一个非常简单的例子吗?(单击按钮后,新框架也将关闭)。只需 2 个带有按钮的框架就足够了。非常感激!
说我有一个JFrame叫childJframe.
如果我从两个不同的JFrames 创建一个新的childJFrame .如何获取创建childJFrame的特定JFrame.
从而:
public class myPage1 extends javax.swing.JFrame{
// on a Button clicked
childJFrame cjf = new childJFrame();
cjf.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)
而第二课是
public class myPage2 extends javax.swing.JFrame{
// on a Button clicked
childJFrame cjf = new childJFrame();
cjf.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能知道是否cjf是myPage1或的实例myPage2?
假设我有2个JFrame(A)和(B)
框架(A)发射框架(B),如下所示
line 1: private void fun1()
line 2: {
line 3: new B();
line 4: Do something
line 5: }
Run Code Online (Sandbox Code Playgroud)
在第3行我激活帧B ..我不想去第4行,直到我从JFrame(B)转回来,因为根据框架(B)中的一些动作我做了这样的动作
new (B);
container.add(JPanel);
Run Code Online (Sandbox Code Playgroud)
container.add(JPanel); - >依赖于从JFrame(B)触发的标志
使用Timer在没有任何按钮的情况下从另一个调用一个JFrame:时间减少然后打开另一个没有任何按钮的JFrame.请帮忙.用于netbeans
我在做,其中有连接在一起3张,说一个小的Java项目f1,f2,f3和f4.f1有一个按钮,然后点击它调用f2,f2并有按钮调用f3.问题是如果我逐个打开所有表单然后关闭表单f2或f3然后主窗体(f1)关闭.
我想要即使我关闭形式f2,f3我的主要形式也不应该关闭,直到我亲自关闭它.
package mnm;
public class NewJFrame extends javax.swing.JFrame {
public NewJFrame() {
initComponents();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
NewJFrame1 nb=new NewJFrame1();
nb.setVisible(true);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
NewJFrame gn=new NewJFrame();
gn.setDefaultCloseOperation(NewJFrame.DISPOSE_ON_CLOSE);
}
});
}
private javax.swing.JButton jButton1;
}
Run Code Online (Sandbox Code Playgroud)