Java.Help

  • Автор теми AkeL.php
  • Дата створення
A

AkeL.php

Guest
Ответ: Java.Help

PHP:
import java.util.Vector;
import java.util.Scanner;
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*; 

public class graf extends JPanel{
	
	public static int N = 4, M=3;
	public static int[][] g= new int[N][M];
	public static Vector<Integer> gr = new Vector<Integer>();
	public static Line2D.Double line = new Line2D.Double(20, 20, 20, 150);
	
	static void read(String filename) throws Exception{
		int i,j;
		System.out.println("Считывание " + filename);
		try{
			Scanner sc = new Scanner(new File(filename));
			for (i=0; i<N; i++){
				for (j=0; j<M; j++){
					g[i][j] = sc.nextInt();
					System.out.print(" " + g[i][j]);
				}
				System.out.println();
			}
		}
		catch(Exception e){}
	}
	static void solve(){
		int i,j,w,s,min = 666, next=0;
			for (i=0; i<N; i++){
				w = g[i][0];
				s = g[i][1];
				if ((gr.contains(w))&&(!gr.contains(s))){
						for (j=0; j<gr.size(); j++){
							if (g[i][2] <= min){
								min = g[i][2];
								next = g[i][1];
							}
						}
						System.out.println(g[i][0] +"->" + next);
						gr.add(next);
						min=666;
				}
			}
	}
	public void paintComponent(Graphics g){
		
		gr.add(1);
		read("f.txt");
		solve();
		Graphics2D g2d = (Graphics2D)g;
		g2d.draw(line);
	}
	public static void main(String[] args) {
		WindowUtilities.openInJFrame(new graf(), 640, 480);
	}
	
}
HTML:
graf.java:51: unreported exception java.lang.Exception; must be caught or declared to be thrown
                read("f.txt");
                    ^
1 error
Делаю:
PHP:
public void paintComponent(Graphics g) throws Exception{
		
		gr.add(1);
		read("f.txt");
		solve();
		Graphics2D g2d = (Graphics2D)g;
		g2d.draw(line);
	}
HTML:
graf.java:48: paintComponent(java.awt.Graphics) in graf cannot override paintComponent(java.awt.Graphics) in javax.swing.JComponent; overridden method does not throw java.lang.Exception
        public void paintComponent(Graphics g) throws Exception{
                    ^
1 error
 

PainKiller

Пастафарианец
Команда форуму
Супер Модератор
Ответ: Java.Help

throws. Есть нестандартные типы исключений которые надо оговаривать. Throws exception это немного не то=)
А вот перечитал код, перегруженный метод не вызывает исключения. Типизируй конкретнее исключения.
 

dreamer

Member
Ответ: Java.Help

throws. Есть нестандартные типы исключений которые надо оговаривать. Throws exception это немного не то=)
А вот перечитал код, перегруженный метод не вызывает исключения. Типизируй конкретнее исключения.
По-моему, достаточно просто добавить try\catch в paintComponent
 

PainKiller

Пастафарианец
Команда форуму
Супер Модератор
Останнє редагування:
A

AkeL.php

Guest
Ответ: Java.Help

Кто - нибудь объяснит как работать со строкой в виде массива символов? :)
 

serg_pet

New Member
Ответ: Java.Help

что именно не понятно, или что именно нужно делать ?
 
A

AkeL.php

Guest
Ответ: Java.Help

у меня есть строка String s = "abc";
Почему не работает такой вывод : System.out.println(s[1]); к примеру?
 

daoway

кот Шрёдингера
Ответ: Java.Help

у меня есть строка String s = "abc";
Почему не работает такой вывод : System.out.println(s[1]); к примеру?
Строка в жаве -- это ниразу не массив. Я уже писал про ... там описана такая ф-ция
char charAt(int index)
Returns the character at the specified index.
Более того, стока в жаве - immutable. Метода типа setCharAt нету :)

Если сильно захочется заюзать массив, можно и так :
Код:
class CharsString
{
	public static void main(String args[])
	{
		String s = "abcde";
		byte[] sChars = s.getBytes();
		for(byte b : sChars)
		{
			System.out.println((char)b);
		}
	}
}
 
Останнє редагування:

PainKiller

Пастафарианец
Команда форуму
Супер Модератор
Ответ: Java.Help

А. Вот что за вопрос был. Просто по определению в java строка это массив символов.(С)Г. Шилдт
 
Зверху