но в Button нет никакого text1. Класс Button ничего не знает о существовании text1 в Main, как и о существовании Main.
Нормальный выход из ситуации - заставить Main слушать события кнопки, и по событию клика выводить в text1 информацию.
Вы заставляете кнопку слушать саму себя. Это само по себе не может считаться ошибкой, но мэйн ничего не будет знать о том, что происходит с кнопкой, нафик она такая кнопка, спрашивается?
Тут как бы простая логика, Я, мэйн, даю пользователю кнопку, чтобы он на нее нажал, и слушаю, когда он это сделает. Чтобы отреагировать на клик соответственно логике, которую я, мэйн, знаю. Кнопка - это просто элемент интерфейса, ее задача в подавляющем большнстве случаев - уведомить родителя о том, что на нее нажали и все.
Замечу, что держать всю логику приложения в одном классе Main - не самая удачная идея, если приложение не "просто поиграться с классами".
Оу... кажись опять маячит на горизонте MVC
