这是我第一次问这个问题.
我想用0到9的10个唯一的int数字制作ArrayList.我接下来的步骤:
我的代码:
public static void main(String[] args) {
Random rd = new Random();
ArrayList<Integer> list = new ArrayList<Integer>();
int q = rd.nextInt(10);
list.add(q);
while (true) {
int a = rd.nextInt(10);
for (int b=0;b<list.size();b++){
if (a == list.get(b)) break;
else list.add(a);
}
if (list.size() == 10) break;
}
System.out.println(list);
}
Run Code Online (Sandbox Code Playgroud)
但我在控制台看到的只是无休止的过程.
问题是 - 是否有另一种方法可以使ArrayList具有10个唯一数字(0到9)?
我是一个使用Java的初级程序员,我正在尝试制作一个游戏,你可以通过移动的箍扔盘.盘具有恒定的向下力,可以使用向上键向上移动; 然而,之前我甚至添加任何碰撞检测,我开始收到一个错误说Java编译找不到可变e的KeyEvent.我在网上到处看,我确信我只是犯了一个愚蠢的错误,但有人可以看看这个.
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.util.Random;
@SuppressWarnings("serial")
public class DiscHoopToss extends JPanel{
int x = 710;
int y = 150;
int xm = -3;
int ym = 1;
int xr = 2;
Random rng = new Random();
int r = rng.nextInt((220-20)+1)+20;
public DiscHoopToss() {
KeyListener listener = new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
if …Run Code Online (Sandbox Code Playgroud) 我试图在java中制作一个游戏,当按下一个按钮时我希望它改变图标以指示该按钮已被选中,然后当再次点击它时我想将其更改为其原始图标以显示它已被取消选择.
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == b[7][4] && selected == false)
{
b[7][4].setIcon(selected);
selected = true;
}
if(e.getSource() == b[7][4] && selected == true)
{
b[7][4].setIcon(king);
selected = false;
}
}
Run Code Online (Sandbox Code Playgroud)
此代码目前按照我的意愿执行,但它同时运行,因此更改图标,然后立即将其更改回原始图标.如何将其更改为一次selected,然后第二次单击将其更改为king图标?
我正在尝试学习如何使用 java 创建一个游戏循环并每秒绘制一个新屏幕一定次数。游戏循环工作正常,但是当我尝试使用 repaint() 调用paint方法时,未调用paint方法。这是我的代码:
import javax.swing.JButton;
import javax.swing.JComponent;
import java.awt.Graphics;
import javax.swing.JFrame;
import java.awt.image.*;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class mainFrame extends Thread{
static boolean gameIsRunning = false;
MyCanvas2 myCanvas2 = new MyCanvas2();
static final int TARGET_FPS = 1;
static int x = 10;
static int y = 10;
static long startTime = 0;
static long elapsedTime = 0;
static long waitTime = 0;
public void createFrame(){
JFrame window = new JFrame("Out from …Run Code Online (Sandbox Code Playgroud) 好的,所以我已经发布了第一部分(我没有获得热狗机销售的正确输出)并获得了大量的帮助,但现在我无法想出从所有不同的展台返回正确的总数.我通过使用'this'关键字让支架增加,但我无法弄清楚如何让静态getTotal正确地增加所有支架.
public class HotDogStand {
//instance variable declaration
private int IDNumber;
private int hotDogsSold=0;
private static int totalSold=0;
//constructor
public HotDogStand(int ID, int sold)
{
this.IDNumber=ID;
this.hotDogsSold=sold;
}
//sets ID for all the stands
public void setID(int ID)
{
this.IDNumber=ID;
}
public int getID()
{
return IDNumber;
}
//invoked each time a stand makes a sale
public void justSold()
{
this.hotDogsSold++;
totalSold=hotDogsSold;
}
//gets the totals for the different stands
public int getSold()
{
return this.hotDogsSold;
}
// returns total …Run Code Online (Sandbox Code Playgroud) 当我在JFrame应用程序中单击"开始"时,我创建了一个应用程序,可以显示Max,Minimum和Average ping.我做了一个白色的盒子,所以我可以适应一个动态变化的线图,它将与我的统计数据在同一个窗口中,并将以与我的统计数据相同的速率更新(1秒).
无论我谷歌多少,每个人似乎都了解JFreeChart示例代码.我根本不明白如何实现这一点.其他教程仅在其自己的窗口中显示该图形.
我希望有人可以帮助我.这是我现在的JFrame代码:
private void startButtonMouseClicked(java.awt.event.MouseEvent evt) {
String host = hostName.getText();
ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
exec.scheduleAtFixedRate(new Runnable(){
@Override
public void run(){
try {
NetworkAnalyzer.pingCheck(host);
} catch (IOException ex) {
Logger.getLogger(NetworkAnalyzerwindow.class.getName()).log(Level.SEVERE, null, ex);
}
}
}, 0, 1, TimeUnit.SECONDS);
Run Code Online (Sandbox Code Playgroud)
这是我的pingCheck:
public class NetworkAnalyzer {
static int count=0;
static long max_time = 0;
static long min_time = 0;
static long avg_time = 0;
public static void pingCheck(String host) throws IOException{
String time = "";
//command to execute
String pingCmd = …Run Code Online (Sandbox Code Playgroud) 所以我是gui的新手,我想制作一个简单的程序来打印一个圆圈来代表太阳,然后在它附近我想打印另一个圆来代表一个星球.我的问题是当我添加方法paintPlanet时,gui窗口中返回的所有内容现在都是空白屏幕.即使我将paintPlanet评论出来,太阳的圆也不会打印出来,我留下一个空白的窗口.有人可以帮我弄清楚我哪里出错了如何修复它,这样两个圆圈都会打印出来?我是GUI新手,所以对我来说很容易:)
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class PlanetsLogic extends JPanel
{
private static final long serialVersionUID = 1L;
public void paintSun(Graphics g)
{
super.paintComponent(g);
//create circle and fill it as yellow to represent the sun
g.setColor(Color.YELLOW);
g.drawOval(100, 75, 75, 75);
g.fillOval(100, 75, 75, 75);
} //end paintSun
public void paintPlanet(Graphics g)
{
super.paintComponent(g);
//create circle and fill it as yellow to represent the orbiting planet
g.setColor(Color.BLUE);
g.drawOval(75, 75, 75, 75);
g.fillOval(75, 75, 75, 75);
}//end paintPlanet
}//end class …Run Code Online (Sandbox Code Playgroud) final JFileChooser fc = new JFileChooser();
File[] files = fc.getSelectedFiles();
private void showTxtFileFrame() {
fc.setMultiSelectionEnabled(true);
fc.setCurrentDirectory(new File(System.getProperty("user.home")));
int result = fc.showOpenDialog(this);
if(result == JFileChooser.APPROVE_OPTION) {
textfield1.setText(fc.getSelectedFile().getAbsolutePath());
}
Run Code Online (Sandbox Code Playgroud)
我想选择多个文件并将它们列在我的文本字段中。我可以选择多个文件,但它只显示单个文件的绝对路径。
我正在处理一个项目,其中一个参数是表格或列表需要显示它从文本文件中读取的多个名称。我为此使用了 Swing 和 JList,但是我在实际使用新信息更新列表时遇到了很多麻烦。
public void selectTable(ArrayList<String> select) {
DefaultListModel model = new DefaultListModel();
model.addElement(select);
selectList = new JList(model);
selectList.setPreferredSize(new Dimension(690, 230));
}
Run Code Online (Sandbox Code Playgroud)
我一直读到你应该使用默认列表模型来更新它,但每次我尝试在 GUI 方面没有任何变化时,JList 保持空白。通过调试器查看,我拥有的数组列表进入了添加元素方法,但没有任何变化
我有一个 Employee 类,有 2 个属性 id 和 name。我将重写 hashcode 和 equals 方法,如下所示。
员工.java:
import java.util.Objects;
public class Employee {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int hashCode() {
return Objects.hash(id, name);
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj …Run Code Online (Sandbox Code Playgroud) java ×10
swing ×7
arraylist ×1
dynamic ×1
game-loop ×1
graphics2d ×1
hashcode ×1
hashset ×1
jfilechooser ×1
jfreechart ×1
jtextfield ×1
keyevent ×1
keylistener ×1
linechart ×1
methods ×1
repaint ×1
static ×1
variables ×1