求问这段java代码,怎么才能运行出一个窗口

求问这段java代码,怎么才能运行出一个窗口,第1张

一、打开两个窗口
在WPS中打开的文件都是以标签的形式排列在窗口中
可以通过下面的方法,在两个WPS窗口中打开两份文档。(WPS表格的 *** 作方法与之一样)
1、打开第一个文档
可以用任意的方式,打开第一个WPS文档;
2、打开第二个文档
打开第二份文档的时候就不要双击了,要从程序中打开。
单击电脑左下角开始----程序----WPSOffice----WPS 文字;
3、这个打开第二个文档,这两个文档就是两个窗口了。
4、在新的窗口中,打开需要的文档

public class Ticket {
public static void main(String[] args) {

Window window=new Window(100);
Thread window1=new Thread(window);
Thread window2=new Thread(window);
window1start();
window2start();
}
}
class Window implements Runnable{
int count=0;
public Window(int count){
thiscount=count;
}

@Override
public void run() {

while(true){
if(count>0)Systemoutprintln(ThreadcurrentThread()getName()+" sell "+count--);
else break;

}
}

}

在Java中,对窗口任何 *** 作都会对应的监听事件,故要实现关闭一个窗口时d出另外一个窗口,只需要在该关闭的窗口的监听事件中添加d窗事件即可。
具体实现如下:
thisaddWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent e)
{
setVisible(false);
new JFrame("新窗口");
}});
在JavaGUI编程中,关闭窗口d出新窗口是很常见的动作,比如一个窗口的业务 *** 作完成了,需要跳转到另一个窗口继续执行,此时就需要关闭旧窗口并d出新窗事件。值得注意的地方时,有时候的关闭往往只是暂时的将旧窗口暂时隐藏,而不是真的关闭,因为之后可能还会继续用到,为了节省开销,暂时的隐藏有利于提供效率。

下面的代码演示了两种方法传递x值到 B 窗口中,一种是通过 B 的构造方法,一种是通过 B 中的 x 的 setter 传递。

import javaawtFlowLayout;
import javaxswingJButton;
import javaxswingJFrame;
import javaxswingJOptionPane;
 
class A extends JFrame {

private int x = 10;

public A() {

thissetTitle("A");
thissetSize(300, 200);
thissetLocationRelativeTo(null);
thissetDefaultCloseOperation(JFrameEXIT_ON_CLOSE);
thissetLayout(new FlowLayout());

JButton button = new JButton("Open B");
buttonaddActionListener(e -> {

// 通构造方法传递
B b = new B(thisx);

// 通过 setter 方法传递
bsetX(x);

bsetVisible(true);
});
thisadd(button);
}
public int getX() {
return x;
}
public void setX(int x) {
thisx = x;
}
}
class B extends JFrame {

private int x;

public B(int x) {

thissetTitle("B");
thissetSize(300, 200);
thissetLocationRelativeTo(null);
thissetDefaultCloseOperation(JFrameDISPOSE_ON_CLOSE);
thissetLayout(new FlowLayout());

thisx = x;

JButton button = new JButton("显示x的值");
buttonaddActionListener(e -> {
JOptionPaneshowMessageDialog(this, x);
});
thisadd(button);
}
public int getX() {
return x;
}
public void setX(int x) {
thisx = x;
}
}
 
public class App {
     
    public static void main(String[] args) {
         
        new A()setVisible(true);
    }
}

你这个程序就是卡片布局了,有2个小错误就是没有对p,c1定义为final我帮你修改好了
import javaawt;
import javaawtevent;
public class XtLcb extends Frame
{
public static void main(String args[])
{
Frame frame = new Frame();
framesetBackground(ColorlightGray);
framesetSize(400,400);
framesetVisible(true);
final CardLayout cl = new CardLayout();
MenuBar menuBar = new MenuBar();
Menu menuFile = new Menu();
MenuItem menuFileExit = new MenuItem();
MenuItem menuFileOpen = new MenuItem();
MenuItem menuFileOn = new MenuItem();
menuFilesetLabel("File");
menuFileExitsetLabel("Exit");
menuFileOpensetLabel("Open");
menuFileOnsetLabel("On");
final Panel p = new Panel();
psetLayout(cl);
Panel p1 = new Panel();
Panel p2 = new Panel();
p1add(new Label("Open"));
p2add(new Label("On"));
padd(p1,"1");
padd(p2,"2");
frameadd(p);
// Add action listenerfor the menu button
menuFileExitaddActionListener
(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
Systemexit(0);
}
}
);
menuFileOpenaddActionListener
(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
clshow(p,"1");
}
}
);
menuFileOnaddActionListener
(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
clshow(p,"2");
}
}
);
menuFileadd(menuFileOpen);
menuFileadd(menuFileOn);
menuFileadd(menuFileExit);
menuBaradd(menuFile);
framesetMenuBar(menuBar);
// Add window listener
frameaddWindowListener
(
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
Systemexit(0);
}
}
);
}
/
Shutdown procedure when run as an application
/
/void windowClosed()
{
// TODO: Check if it is safe to close the application
// Exit application
Systemexit(0);
}/
}

很简单, 出票里加锁就行了完整代码:

public class Test {
public static void main(String[] args) {

for(int i=0; i<3; i++){
new Thread("线程 " + i){
public void run() {
while(true){
int p = getNumber();
if(p >0 ){
Systemoutprintln(getName() + " 票号: " + p);
}else{
Systemoutprintln("没票了");
break;
}
}
};
}start();
}
}




public static int num = 100; //总票数

/
  synchronized 同步锁
  @return
 /
public static synchronized int getNumber(){
if(num >0){
return num --; //如果大于0, 则返回当前票并减少一张
}
return 0;
}
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13366567.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-22
下一篇 2023-07-22

发表评论

登录后才能评论

评论列表(0条)

保存