问题是,当我调整大小时,JFrame动画继续使用它的Pre提供的尺寸JComponent.有没有办法,我可以更新我的方式width和height变量,我调整JFrame,让动画可以随着新坐标运行.
简单来说,说JComponent有初始width = 300和height = 300,所以BALL里面这些举动规定Co-ordinates.现在,如果我调整我的JFrame,大小为JComponent仍然为是即width = 300和height = 300,但我所期待的,是修改这些变量与窗口的当前大小的方式.如果我在解释我的问题时缺乏某些东西,请告诉我.
这是我正在使用的代码:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class BallAnimation
{
private int x;
private int y;
private int count;
private int width;
private int height;
private int speedValue;
private boolean flag;
/*
* These variables are used to keep track of …Run Code Online (Sandbox Code Playgroud) 我有以下代码...(加上一个通用的Player类,包含getX,getY,setX,setY,render(),tick()等等)
我希望玩家在ViewB中加载并且当它到达边缘时...我希望ViewB关闭并被ViewA或ViewC取代(取决于它是左边缘还是右边缘)...我不能似乎完成了这个,我不知道我做错了什么.... Player类是在MainGameThread.java中创建的......然后传递给新的JPanel,这样我仍在使用原始的Player对象/ sprite被创造了......当
System.out.println("Should change screens here to ViewA");命令碰到边缘时,命令似乎没有触发..我在这里做错了什么???? 我需要修什么课?
MainGameThread类:
import java.util.LinkedList;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MainGameThread extends JFrame {
private LinkedList<JPanel> screens = new LinkedList<JPanel>();
private ViewA va;
private ViewB vb;
private ViewC vc;
private ViewD vd;
private Player player;
public MainGameThread() {
player = new Player();
// load player settings from server
// ..
//
// va = new ViewA(player);
//vc = new ViewC(player);
//vd = new ViewD(Player)
vb = new ViewB(player);
screens.add(0,ViewB); …Run Code Online (Sandbox Code Playgroud) package carspeedometer;
import java.awt.Graphics;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
class a1 {
a1() {
JFrame jf = new JFrame("Speedometer");
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel jp = new JPanel();
JLabel jb = new JLabel(new ImageIcon(
"C:/Users/Vinayak/Desktop/tester.jpg"));
jp.add(jb);
jf.add(jp);
jf.setVisible(true);
jf.setSize(700, 700);
}
public void paint(Graphics g) {
g.drawLine(70, 70, 200, 200);
}
public static void main(String...s) {
new a1();
}
}
Run Code Online (Sandbox Code Playgroud)
线未显示在屏幕上.我想在图像顶部显示线条.请帮助.在这里,我试图建立一个速度表,但首先需要显示一条线
我开始使用Swing创建一个桌面应用程序,我完全是新的.因为我没有在语法或结构中发现任何错误但它会引发错误.这只是一个活动演示程序.
package testEvent;
import java.awt.FlowLayout;
import java.awt.event.*;
import javax.swing.*;
public class EventDemo {
JLabel jlab;
EventDemo(){
JFrame jfrm = new JFrame("An Event Example");
jfrm.setLayout(new FlowLayout());
jfrm.setSize(220,90);
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton jbtnAlpha = new JButton("Alpha");
JButton jbtnBeta = new JButton("Beta");
jbtnAlpha.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
jlab.setText("Alpha was Pressed.");
}
});
jbtnBeta.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
jlab.setText("Beta was Pressed.");
}
});
jfrm.add(jlab);
jfrm.setVisible(true);
}
public static void main(String args[]){
//Create the Frame on Event Dispatching thread
SwingUtilities.invokeLater(new Runnable(){
public void run(){
new …Run Code Online (Sandbox Code Playgroud) 我目前正在使用JCreator,并且无法找到我的代码有什么问题,由于某种原因它不能读取我输入的内容JTextField.我不打算彻底改变我的代码,如果any1可以指出我做错了什么,或者给我一些它应该是什么样的代码示例,这将是很好的.再次,当他们做同样的事情时,不要寻找"这比这更好".
import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Wall extends JApplet implements ActionListener {
double count;
Boolean Submit = false;
JButton btn1;
JTextField tf,field;
int x = 0;
int y = 575;
int x1 = 50;
int y1 = 25;
int textnumber;
Random randomNum = new Random();//initialize random variable
int count2;
public void init() {
setLayout( new FlowLayout( ) );
tf = new JTextField(5);
field = new JTextField( "<===== Enter Brick …Run Code Online (Sandbox Code Playgroud) 我正在尝试添加一个将JPanel扩展到另一个JPanel的图像面板.这对我来说效果不佳.图像面板的绘制功能不会在Jpanel中调用,但在JFrame中可以正常工作.任何想法或帮助将不胜感激.
import javax.swing.*;
import java.awt.*;
import java.awt.geom.RoundRectangle2D;
import java.awt.image.BufferedImage;
class ImagePanel extends JPanel
{
int g_h=10,g_w=10;
int width=50,height=50;
int cornerradius;
Image castle;
Dimension size;
protected int x1,y1;
Color c1=new Color(255, 0, 0);
Rectangle rec;
boolean b=false;
boolean imboo=false;
boolean roundb= false;
Graphics g= this.getGraphics();
protected int strokeSize = 1;
protected Color shadowColor = Color.BLACK;
boolean shadowed = false;
public ImagePanel()
{
//super();
setOpaque(false);
setLayout(null);
System.out.println("it executed");
}
public ImagePanel(int x, int y)
{
setSize(x, y);
}
public void setSize(int x,int …Run Code Online (Sandbox Code Playgroud) 所以我正在制作一个显示列车时间的小样本应用程序.现在JTable列车的显示不是动态的.我想要的是,每次都要检查时间,30 secs or minute桌子会消除"应该到达"的列车.然而,我被困在不断检查的时间部分.我已经创建了一个TimeChecker在后台运行的类,但它没有多大用处,因为当我将无限循环或线程放入我的JPanel类时,用户界面没有显示.
这是我的TimeChecker:
package controller;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class TimeChecker extends Thread {
private String timeStamp;
public String getTimeStamp() {
return timeStamp;
}
public void run() {
while(true) {
try {
Thread.sleep(2000);
String dateStamp = new SimpleDateFormat(
"yyyyMMdd_HHmmss").format(
Calendar.getInstance().getTime());
timeStamp = dateStamp.substring(9,13);
System.out.println(timeStamp);
} catch(InterruptedException e) {
e.printStackTrace();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的Panel类:
package view;
import java.awt.GridLayout;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import controller.*;
public class Panel extends JPanel …Run Code Online (Sandbox Code Playgroud) 我正在创建线程来读取java中的文件.当我创建2个线程时,每个线程读取整个文件,而我希望它们读取文件的不同部分.我尝试放入sleep(),join(),yield()但是在包含它们之后它只是放慢了读取速度.
public class MyClass implements Runnable {
Thread thread;
public MyClass(int numOfThreads) {
for(int i=0;i < numOfThreads; i++) {
thread = new Thread(this);
thread.start();
}
}
public void run() {
readFile();
}
}
Run Code Online (Sandbox Code Playgroud)
在readFile中,在while循环中(逐行读取)我调用了sleep()/ yield().如何让线程读取文件的不同部分?
更新了用于读取文件的方法...
public synchronized void readFile() {
try {
String str;
BufferedReader buf = new BufferedReader(new FileReader("read.txt");
while ((line = buf.readLine()) != null) {
String[] info = str.split(" ");
String first name = info[0];
String second name = info[1];
try {
Thread.sleep(100);
} catch (InterruptedException e) …Run Code Online (Sandbox Code Playgroud) 我有两个问题:
1.为什么当我执行代码时,当我点击按钮P时它没有显示println.2.我试图用JLabel创建一个背景它工作正常,但它没有覆盖所有的JFrame.我用try和catch尝试了JFrame,但它没有显示出来.
JPanel L1 = new JPanel();
JButton P = new JButton("Open");
JButton P1 = new JButton("Cancel");
Dimension D = new Dimension(80 , 30);
Container C = getContentPane();
JLabel Label2 = new JLabel(new
super.setTitle("Ismail Application");
//Buttons
//Button 1
P.setToolTipText("Click To Open");
P.setPreferredSize(D);
//Button 2
P1.addActionListener(this);
P1.setToolTipText("Click to exit program");
P1.setPreferredSize(D);
//Adding Components
L1.add(P, BorderLayout.WEST);
L1.add(P1, BorderLayout.EAST);
add(L1, BorderLayout.SOUTH);
P1.addActionListener(this);
P.addActionListener(this);
//Labels
Label2.setLayout(null);
Label2.setSize(400,300);
Label2.setToolTipText("This is the Background");
add(Label2, BorderLayout.NORTH);
}
public void actionPerformed (ActionEvent e)
{
if(e.getSource() == P)
{ …Run Code Online (Sandbox Code Playgroud) 这是我第一次使用java界面而且非常困惑.在线阅读教程之后,我就会想到如何定义界面并实现它,但是小时,分钟和秒都有红色下划线.我无法弄清楚为什么会如此.
interface myClock {
int hours;
int minutes;
int seconds;
public void clock();
public void clock(int x, int y, int z);
public void setTime(int x, int y, int z);
public void incTimeBySec();
public void incTimeByMins(int x);
public void display12hr();
public void display24hr();
}
class time implements myClock {
public void clock() {
hours = 0;
minutes = 0;
seconds = 0;
}
public void clock(int x, int y, int z) {
hours = x;
minutes = y;
seconds = z; …Run Code Online (Sandbox Code Playgroud) 我用不同的JButtons制作了一个JFrame,我想从另一个类中获取一个图像.有任何想法吗?或者如何在同一个类上绘制但是在执行的操作上?因为它不允许我做任何图纸......我的编译器总是给我错误信息
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.*;
public class red extends JFrame {
public JButton b;
public JButton b1;
public JButton b2;
public JButton b3;
public JButton b4;
public static Image p;
public static Graphics g;
public red() throws IOException {
gui1 x = new gui1();
setTitle(" ");
setSize(1200,700);
setLayout(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
b= new JButton("click");
b1= new JButton();
b.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e0){
b1.setBounds(0, 0, 200, 200);
b.show(false);
add(x);
}
});
b.setBounds(0, 0, 100, 100); …Run Code Online (Sandbox Code Playgroud) 这样的问题,从word上滚动根本不行。也就是说,他没有滚动列表,尝试了 YouTube 上的各种教程,阅读文档,甚至观看了官方课程,但有些东西没有滚动出来。如果您需要屏幕截图或类似的东西,我可以将它们提供给任何图像交换。